多态向上转型向下转型

    public static void main(String[] args) {
        Artist artist;
        artist = new ViolinArtist();//(向上转型)ViolinArtist为子类,父类引用子类对象 损失自己特有的属性和方法
        artist.make();//调用的子类的方法
        //artist.play();   会报错,
        ViolinArtist va = new ViolinArtist();
if(artist instanceof ViolinArtist){  //判断一个对象是否属于一个类或一个接口
            System.out.println("真");
        }else{
            System.out.println("假");
        }
        va = (ViolinArtist)artist;//向下转型,恢复自己特有的方法和属性
        va.play();
    }
原文地址:https://www.cnblogs.com/infernofranz/p/5748809.html