父类
public class MySuper {
public void say(){
System.out.println("super");
}
public void tosay(){
say();
}
}
子类:
public class MySub extends MySuper {
public void say(){
System.out.println("sub");
}
public static void main(String[] args) {
MySub sub = new MySub();
sub.tosay();
}
}
输出结果是 sub,就问一下这个地方为什么回调了子类的say方法而不是去执行父类的say方法呢
因为你实例化的对象是子类,所以你调用的方法是子类的方法,和父类的方法无关
很明显这是继承中的隐藏原则啊。
因为你的子类重写了父类的方法,所以调用的就是子类的了