【发布时间】:2011-10-24 08:56:19
【问题描述】:
我的应用具有类似这样的结构:
class Father{
a(){ ... }
b(){a();}
}
class Son extends Father{
a(){ ..... }} //override
b() 未被覆盖。 当我创建 Son 的实例并调用 b() 时,会调用父亲的 a(),但我希望它执行 Son 的实例(如果对象是 Son)。可能吗?
【问题讨论】:
-
在这种情况下应该调用儿子的 a()。
-
@Hovercraft,我假设 OP 意味着 b() 没有被覆盖,如果对象是 Son,他希望 b() 调用 Son 的 a()
-
@SamDeHaan: b 不必被覆盖
-
这是一种非常常见的设计模式,假设您正确地覆盖了 a() 方法,则应该调用儿子的 a()。
-
@Hovercraft,啊,好吧-我的错。显然我离开 Java 的时间比我想象的要长 >.>
标签: java overriding subclass superclass extends