java - 我们可以从另一个类中的子类对象调用父类(super class)的重写方法吗

标签 java oop overriding

class A{
    int i,j;
    A(int x,int y){
        i=x;j=y;
    }
    void show(){
        System.out.println("i="+i+" j="+j);
    }
}

class B extends A{    
    int k;
    B(int i,int j,int k){
        super(i,j);
        this.k=k;
    }
    void show(){
        System.out.println("k="+k);
    }
}

public class overridingEx{
    B ob=new B(1,2,3);
    ob.show();    // this will call the B's show method.
}

请告诉我有没有办法从 B 的类对象 ob 调用 A 类方法?

最佳答案

您不需要从 ob 调用 Ashow 方法。您应该从 Bshow 方法中调用 super.show()

void show(){
    super.show();
    System.out.println("k="+k);
}

现在,当调用 ob.show() 时,您将看到两个 show() 方法的输出:

i=1 j=2
k=3

从子类中调用 super.show() 会调用父类(super class)的 show() 方法的实现。

关于java - 我们可以从另一个类中的子类对象调用父类(super class)的重写方法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280698/

相关文章:

java - Class.forName(name, instantiation, classLoader) 不会将类添加到类路径

java - 如果静态方法的定义不能被派生类覆盖/更改,为什么以及何时需要在派生类中重新声明静态方法?

java - 尝试在 java 中使用 Jackson 时出现问题

Swift:如何子类化一个对象以便我可以添加一个额外的变量?

java - OOP 继承扩展

javascript - 如何在不丢失原始方法的情况下替换方法?

java - return 语句后出现意外输出

c++ - 如何在 C++ 中访问派生类中的变量?

oop - 返回接口(interface)时返回更少/更具体的接口(interface)的 OO 最佳实践

swift - 如何在应用程序中覆盖内部框架方法(外部框架)