定义一个抽象类Animal,包含: 抽象方法:run() 定义一个Dog类,继承Animal类, 实现抽象方法:run(),输出"如脱缰的野狗一样奔跑" 定义自己特有的方法: eat(),输出"狗吃骨头" 定义一个Cat类,继承Animal类, 实现抽象方法:run(),输出"奔跑的猫毛都被撸秃了" 定义自己特有的方法: catchMouse(),输出"猫抓老鼠" 在测试类中定义如下方法: public static void printAnimal(Animal a){} 要求在方法中编写代码实现如下功能: 在主方法中: 1. Animal b = new Dog(); 调用方法printAnimal()传入b对象,能在控制台输出: 如脱缰的野狗一样奔跑 狗吃骨头 1. Animal c = new Cat(); 调用方法printAnimal()传入c对象,能在控制台输出: 奔跑的猫毛都被撸秃了 猫抓老鼠
时间: 2024-03-17 17:42:51 浏览: 118
关于抽象类的java实验 Animal
好的,下面是根据您的要求编写的代码:
```python
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def run(self):
pass
class Dog(Animal):
def run(self):
print("如脱缰的野狗一样奔跑")
def eat(self):
print("狗吃骨头")
class Cat(Animal):
def run(self):
print("奔跑的猫毛都被撸秃了")
def catchMouse(self):
print("猫抓老鼠")
def printAnimal(a):
a.run()
if isinstance(a, Dog):
a.eat()
elif isinstance(a, Cat):
a.catchMouse()
b = Dog()
c = Cat()
printAnimal(b)
printAnimal(c)
```
在这个示例中,Animal 是一个抽象类,定义了一个抽象方法 run()。Dog 和 Cat 都继承了 Animal 类,并实现了自己的 run() 方法。Dog 有一个 eat() 方法,Cat 有一个 catchMouse() 方法,这是它们自己特有的方法。printAnimal() 方法接受一个 Animal 类型的参数,调用它的 run() 方法并根据具体类型选择性地调用 eat() 或 catchMouse() 方法。在主方法中,创建了一个 Dog 对象 b 和一个 Cat 对象 c,分别传入 printAnimal() 方法作为参数进行测试。
阅读全文