JavaSE-11.1.3【多态中的转型】

package day2.yubaby01.p3;

/*
1.4 多态中的转型

    向上转型
        子-->父
        父类引用指向子类对象
    向下转型
        父-->子
        父类引用转为子类对象
        格式:子类型 对象名 = (子类型)父类引用;
 */

public class AnimalDemo {
    public static void main(String[] args) {
        Animal a = new Cat(); //多态(即向上转型)
        a.eat();
//        a.playGame(); //error

        /*Cat c = new Cat();
        c.eat();
        c.playGame(); //ok*/

        //向下转型
        Cat c2 = (Cat)a;
        c2.eat();
        c2.playGame(); //ok
        //或
        ((Cat) a).playGame(); //ok
    }
}

  

package day2.yubaby01.p3;

public class Animal {
    public void eat(){
        System.out.println("动物进食");
    }
}

  

package day2.yubaby01.p3;

public class Cat extends Animal{
    @Override
    public void eat(){
        System.out.println("猫吃草?");
    }

    public void playGame(){
        System.out.println("猫玩捉迷藏");
    }
}

  

posted @ 2021-05-28 15:18  yub4by  阅读(33)  评论(0编辑  收藏  举报