面试题:Java多态下父类与子类方法调用优先级之复杂继承体系
给定以下Java类继承结构:
class GrandParent {
public void display() {
System.out.println("GrandParent");
}
}
class Parent extends GrandParent {
@Override
public void display() {
System.out.println("Parent");
}
}
class Child extends Parent {
@Override
public void display() {
System.out.println("Child");
}
}
class SpecialChild extends Child {
public void displaySpecial() {
System.out.println("SpecialChild's special method");
}
}
public class Main {
public static void main(String[] args) {
GrandParent gp1 = new GrandParent();
GrandParent gp2 = new Parent();
GrandParent gp3 = new Child();
GrandParent gp4 = new SpecialChild();
gp1.display();
gp2.display();
gp3.display();
gp4.display();
// 如果想在这调用SpecialChild的displaySpecial方法,应该怎么做?请修改代码实现
}
}
请写出程序输出结果,并阐述如何调用SpecialChild类特有的displaySpecial方法,说明涉及的多态概念。