super的使用以及如何替换它,Java
Use of super and how to replace it, Java
我的问题是是否有办法替换 super 以仍然调用父方法或父变量?
如果有办法,是不是类似于super的使用?
简而言之,超级可替代吗?
有些语言没有实现子类化的概念(如早期版本中的 Visual Basic)。调用 "superclass methods" 的解决方法是实现委托模式,并在那里实例化 "superclass"(这不是真正的超类)。然后,超类不是通过关键字 super
调用的,而是通过委托模式调用的。要了解委托模式,请参阅设计模式文献 - 或者只是 https://en.wikipedia.org/wiki/Delegation_pattern
这个概念描述了 super
如何被委派取代——但在 Java 中没有必要这样做。干脆不做。
是的,有区别:当你实例化一个 java 对象时,你有这个对象实例,它提供了它的超类的所有方法等。当您使用委托模式实现解决方法时,您有第二个实例(在这种情况下,超类委托将是一个单独的实例)。
我的问题是是否有办法替换 super 以仍然调用父方法或父变量?
如果有办法,是不是类似于super的使用?
简而言之,超级可替代吗?
有些语言没有实现子类化的概念(如早期版本中的 Visual Basic)。调用 "superclass methods" 的解决方法是实现委托模式,并在那里实例化 "superclass"(这不是真正的超类)。然后,超类不是通过关键字 super
调用的,而是通过委托模式调用的。要了解委托模式,请参阅设计模式文献 - 或者只是 https://en.wikipedia.org/wiki/Delegation_pattern
这个概念描述了 super
如何被委派取代——但在 Java 中没有必要这样做。干脆不做。
是的,有区别:当你实例化一个 java 对象时,你有这个对象实例,它提供了它的超类的所有方法等。当您使用委托模式实现解决方法时,您有第二个实例(在这种情况下,超类委托将是一个单独的实例)。