练习:猫狗案例多态版

本文通过猫狗实例展示了多态的概念与应用。通过继承与方法重写实现了不同动物的行为特性,同时展现了如何利用多态特性进行对象操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
    猫狗案例多态版

    测试结果:
        猫吃鱼
        猫玩捉迷藏
        狗吃肉
        狗看门
*/
//动物类
class Animal{
    public Animal(){}

    public void eat(){
        System.out.println("吃饭");
    }
}

//狗类 继承动物
class Dog extends Animal{
    public Dog(){}

    //重写方法
    public void eat(){
        System.out.println("狗吃肉");
    }
    //狗类特有的功能
    public void lookDoor(){
        System.out.println("狗看门");
    }
}
//猫类 继承动物
class Cat extends Animal{ //我又一次忘了写extends...
    public Cat(){}

    //重写方法
    public void eat(){
        System.out.println("猫吃鱼");
    }
    //猫类特有的功能
    public void playGame(){
        System.out.println("猫玩捉迷藏");
    }
}

//测试类
class CatDogDuoTaiTest{
    public static void main(String[] args){
    //定义成猫
        Animal a= new Cat();
        a.eat();   //执行的是重写的方法
    //还原成猫
        /*--------想要执行Cat特有的方法:------*/
        Cat c= (Cat)a; //c引用了上面已有的猫对象(c指向了这个猫对象所在的堆内存空间 0x001)
        c.playGame();//这时便可以用猫特有的功能了
    //变成了狗  
        a= new Dog();//这里写的仍然是a,a又指向了一个狗对象
        a.eat();
    //还原成狗
        Dog d= (Dog)a;
        d.lookDoor();   
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值