public static void main(String[] args) {
A a = new B();
B b = new B();
a.getMessage();
b.getMessage();
}
}
为什么输出都是A
B b = new B();
b.getMessage();
为什么调用的是父类的私有方法
A a = new B();
a.getMessage();
为什么调用的是父类的私有方法 作者: 心?=忐§忑] 时间: 2014-3-31 16:02
B b = new B();
因为父类中的方法是私有权限的,所以子类不能腹写方法,则就不会调用子类的方法。
A a = new B();
实例化对象向上转型了,肯定调用父类的方法。作者: osully 时间: 2014-3-31 16:04
B b = new B();
b.getMessage(); 这个是继承的父类的,方法还是在父类中,方法中只能操作父类的属性或方法,还是一句话除非被复写了才会去找子类的
A a = new B();
a.getMessage(); 父类引用指向子类对象,多态!
第一,只能调用父类存在的方法.如果被子类复写才回去调用子类的
作者: H-Deka 时间: 2014-3-31 17:39
B b = new B();
b.getMessage(); B继承了A的getMessage()方法,所以b.getMessage()调用的是父类的getMessage()方法,该方法内又调用了自己的showMessage()方法
A a = new B();
a.getMessage();
指向子类的父类引用,所以a.getMessage()还是调用的父类方法