JAVA向下转型

向下转型就是让转型后的对象原路返回,这种转型不太安全,所以需要 instanceof 关键字来判断。

 

public class DemoMain {
    public static void main(String[] args) {
        Animal an = new Cat();
        an.eat();

        //向下转型,遵循原路返回的原则
        Cat cc =(Cat)an;
        cc.eat();

        //这里会报错: Exception in thread "main" java.lang.ClassCastException
//        Dog dd=(Dog)an;
//        dd.eat();

        giveMeAPet(new Cat());
        giveMeAPet(new Dog());


    }

    public static void giveMeAPet(Animal an){
        if(an instanceof Dog){
            an.eat();
        }
        if(an instanceof Cat){
            an.eat();
        }

    }
}

 

posted @ 2022-03-03 14:08  mickle_deng1  阅读(133)  评论(0)    收藏  举报