繁体   English   中英

从子类对象调用超类方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM