[英]Superclass method is called from subclass object
我有两个类 SuperClass 和 SubClass,
class SuperClass{ public void count(){} }
class SubClass extends SuperClass { }
class Test
{
public static void main(String[] args)
{
new SubClass().count();
}
}
这里我用jdb来看看这段代码是如何工作的,在制作了SubClass的Object之后,我希望SubClass的count方法被调用,因为它继承了SuperClass的count方法,但是正在调用SuperClass的count方法。
我在 jdb 中使用“list”进行了检查,它显示了 SuperClass 的 count 方法处的行,为什么会发生这种情况?
当您调用对象的方法时,Java 会检查该方法是否存在于对象中。 如果是,则调用它,否则检查父类中是否存在。 依此类推,直到找到方法。 由于您尚未覆盖您的方法,因此被调用的方法是父方法。
它应该类似于下面的内容。
class SuperClass{ public void count(){
//if it is not overriden in the child class then this will get executed
}
}
class SubClass extends SuperClass {
public void count(){
//If this exists, this will be executed otherwise the parent count() will be executed
}
}
class Test
{
public static void main(String[] args)
{
new SubClass().count();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.