【发布时间】:2015-11-07 09:09:43
【问题描述】:
public class B {
public B() {
}
private void m0(){
System.out.println("BO");
}
public void m1(){
System.out.println("B1");
}
public void test(){
this.m0();
this.m1();
}
}
public class D extends B{
/**
*
*/
public D() {
}
public void m0(){
System.out.println("DO");
}
public void m1(){
System.out.println("D1");
}
public void test(){
super.test();
}
public static void main(String[] args) {
B d=new D();
d.test();
}
}
我的问题是为什么输出是BO,D1 而不是BO,B1。我不明白super 关键字如何扮演调用子类而不是父类的方法的角色。
【问题讨论】:
标签: java inheritance private super