从子类调用超类的方法
Calling method of Superclass from subclasses
我在面试中遇到一个问题,我们是否可以从 EDC 访问 class 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");
}
}
我想知道除了 ABC 的对象创建之外,我们是否可以从 class EDC 访问 ABC 的方法。我知道答案非常直接和简单,我们只能访问 EDC 的 super class 方法,即;通过 super.display() 显示 CBD 的 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();
}
}
不,这是不可能的。 super
.
只能升一级
您可以有一个从 CBD 调用 super() 并使用 super() 从 EDC 调用该方法的方法,即链接调用。
我在面试中遇到一个问题,我们是否可以从 EDC 访问 class 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");
}
}
我想知道除了 ABC 的对象创建之外,我们是否可以从 class EDC 访问 ABC 的方法。我知道答案非常直接和简单,我们只能访问 EDC 的 super class 方法,即;通过 super.display() 显示 CBD 的 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();
}
}
不,这是不可能的。 super
.
您可以有一个从 CBD 调用 super() 并使用 super() 从 EDC 调用该方法的方法,即链接调用。