对象转型

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中新定义的方法就不能调用了。

上一篇 下一篇

猜你喜欢

热点阅读