我的问题是关于是否有一种方法可以代替super来仍然调用父方法或父变量? 如果有办法,是否类似于超级的使用? 简单来说,超级可替换吗?
答案 0 :(得分:0)
某些语言没有实现子类化的概念(如Visual Basic,在早期版本中)。调用“超类方法”的一种解决方法是实现委托模式,并在那里实例化“超类”(这不是真正的超类)。然后,不是通过关键字super
而是通过委托模式来调用超类。要了解委托模式,请参阅设计模式文献-或仅查看https://en.wikipedia.org/wiki/Delegation_pattern
此概念描述了如何可以用委托代替super
,但是在Java中不需要这样做。根本不做。
是的,这是有区别的:当实例化一个Java对象时,便有了该对象实例,该实例提供了其超类中的所有方法等。当使用委托模式实现解决方法时,您将拥有第二个实例(在这种情况下,超类委托将是一个单独的实例)。