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 对象时,你有这个对象实例,它提供了它的超类的所有方法等。当您使用委托模式实现解决方法时,您有第二个实例(在这种情况下,超类委托将是一个单独的实例)。