我在面试中遇到一个问题,我们是否可以从EDC访问ABC类的方法display(),如下所示
class ABC {
public void display() {
System.out.println("from ABC");
}
}
class CBD extends ABC {
public void display() {
System.out.println("From CBD");
}
}
class EDC extends CBD {
public void display() {
System.out.println("From EDC");
}
}
我想知道我们是否可以从类EDC访问ABC的方法而不是ABC的对象创建。我知道答案是非常直接和简单的,我们只能访问EDC的超类方法,即; CBD的display()通过super.display(),但我觉得我是否缺少任何方法来从EDC访问ABC的display()。
我认为其中一种可能的方法如下
class ABC {
public void display()
{
System.out.println("from ABC");
}
public static void main(String args[])
{
ABC obj=new EDC();
obj.display();
}
}
class CBD extends ABC {
public void display()
{
super.display();
}
}
class EDC extends CBD {
public void display()
{
super.display();
}
}
答案 0 :(得分:2)
不,这是不可能的。您只能使用super
升级一级。
答案 1 :(得分:1)
你可以有一个方法从CBD调用super()并使用super()从EDC调用该方法,即链接调用。