【发布时间】:2021-10-02 01:35:06
【问题描述】:
父类
class Animal {
public void sound() {
System.out.println("Grr");
}
}
儿童班
class Dog extends Animal {
public void sound() {
System.out.println("Woof");
}
}
调用类
class Callings {
public static void main(String args[]) {
Animal a = new Dog();
a.sound();
}
}
输出是 - “Woof”
我担心的是--> 到目前为止,我已经读到如果我们使用父类引用并将对象指向子类,那么使用父类的引用我们只能访问父类的数据成员和方法,如果这是真的,那么上面代码的输出应该是“Grr”。但是输出是“Woof”,谁能解释一下原因。
【问题讨论】:
-
除非您在子类中使用
super,否则在这种情况下调用将转到子类本身。 -
这是术语“多态性”的含义。
标签: java polymorphism overriding