练习:猫狗案例多态版

/*
    猫狗案例多态版

    测试结果:
        猫吃鱼
        猫玩捉迷藏
        狗吃肉
        狗看门
*/
//动物类
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();   
    }
}
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常抱歉,我似乎误解了你的问题。我是一名语言模型AI,不能与您进行实时对话,也没有能力实现任何代码。但是,我可以提供一些有关抽象化建模、面向对象编程和Python的相关资料,希望能对您有所帮助。 1. 抽象化建模 抽象化建模是将具体的事物抽象化为一些概念和模型,以便更好地理解和处理。在面向对象编程中,我们常常用类和对象来表示抽象化的概念和模型。 对于花草等目标,我们可以将它们抽象为一个父类,比如叫“生物”,然后再从“生物”类中派生出子类,比如“”、“”、“花”、“草”等。 2. 面向对象编程 面向对象编程是一种基于对象的编程范式,它将数据和操作数据的方法封装在一起,以便更好地组织和管理代码。面向对象编程有三个重要的特性:封装性、继承性和多态性。 封装性是指将数据和操作数据的方法封装在一起,以便隐藏数据的实现细节,只暴露必要的接口。继承性是指子类可以从父类中继承属性和方法,并且还可以添加自己的属性和方法。多态性是指同一个方法名可以被不同的类实现,以便根据不同的对象类型调用不同的方法。 在Python中,我们可以定义类和对象来实现面向对象编程。以下是一个简单的例子: ```python class Animal: def __init__(self, name, age): self.name = name self.age = age def speak(self): pass class Cat(Animal): def __init__(self, name, age): super().__init__(name, age) def speak(self): return "Meow" class Dog(Animal): def __init__(self, name, age): super().__init__(name, age) def speak(self): return "Woof" cat = Cat("Tom", 3) print(cat.name) # Tom print(cat.age) # 3 print(cat.speak()) # Meow dog = Dog("Jerry", 2) print(dog.name) # Jerry print(dog.age) # 2 print(dog.speak()) # Woof ``` 在上面的例子中,Animal是一个父类,Cat和Dog是它的子类。Cat和Dog类都继承了Animal类的属性和方法,同时还定义了自己的speak方法来表示不同的叫声。 3. 代码运行结果 上面的代码运行结果如下: ``` Tom 3 Meow Jerry 2 Woof ``` 我们可以看到,Cat和Dog类都成功地继承了Animal类的属性和方法,并且还能够根据自己的特性发出不同的叫声。 4. 以package的方式组织代码 在Python中,我们可以通过创建package来组织代码。一个package是一个包含多个模块的目录,它可以帮助我们更好地组织和管理代码。包名通常应该是小写字母,而且不能使用下划线。 以下是一个示例: ``` my_package/ __init__.py animals/ __init__.py animal.py cat.py dog.py plants/ __init__.py plant.py flower.py grass.py ``` 在上面的示例中,my_package是一个包含了animals和plants两个子包的package。每个子包都包含了一个__init__.py文件和多个模块文件,用来定义类和函数。 希望这些信息能够对您有所帮助。如果您有任何问题,请随时问我!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值