对象转型
2017-11-14 本文已影响0人
梦在原点
分享以下一段代码
abstract class A{
public abstract void print();
public void Aprint(){
System.out.println("########");
}
}
class B extends A{
public void print(){
System.out.println("*******");
}
public void Bprint(){
System.out.println("####****");
}
}
public class ZhuanXing{
public static void main(String args[]){
A a = new B();
a.Aprint();
a.Bprint();
}
}
程序运行的结果是“#######”,但是a.Bprint()这里会出错,是不是就可以理解为向上转型之后,a这个类只能来调用父类A里面的方法,而且如果A类中被子类B覆写的话,那执行B中被覆写的方法,但是B中新定义的方法就不能调用了。