当我使用不同的超类型变量从副子对象调用方法时,为什么会发生这种情况

时间:2018-03-30 16:14:19

标签: inheritance static override

很抱歉给出了版画屏幕,而不是代码片段。这是我运行程序时显示的程序的打印屏幕

忽略这个程序中的第19行和第20行,我的问题是:当我调用静态方法和调用重写方法时,为什么我们对打印出的内容有所不同?不应该重写方法显示我调用静态方法时显示的相同内容吗?

1 个答案:

答案 0 :(得分:0)

查看此帖子:Can I override and overload static methods in Java?

快速摘要:静态方法属于类实例。它们不能被覆盖。

覆盖是在运行时中调用特定方法的原则。 在这种情况下,编译器在编译时时选择该方法。