我们可以从另一个类中的子类对象调用超类的重写方法

时间:2013-08-16 19:25:28

标签: java oop override

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类方法

2 个答案:

答案 0 :(得分:2)

您无需从A拨打show ob方法。您应该从super.show() B方法中致电show

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

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

i=1 j=2
k=3

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

答案 1 :(得分:0)

使用super explcitly使用超类的方法,常量,构造函数等。

super.show()放入B,它将使用A#show()