编写一个抽象类animal,其成员变量有name,age,weight表示动物名,年龄和质量。方法有showInfo(),move()和eat(),其中后面两个方法是抽象方法
时间: 2024-05-05 17:21:35 浏览: 189
以下为Python实现:
```python
from abc import ABC, abstractmethod
class Animal(ABC):
def __init__(self, name, age, weight):
self.name = name
self.age = age
self.weight = weight
def showInfo(self):
print(f"Name: {self.name}, Age: {self.age}, Weight: {self.weight}")
@abstractmethod
def move(self):
pass
@abstractmethod
def eat(self):
pass
```
上述代码中,我们定义了一个名为`Animal`的抽象类,其中有三个成员变量`name`,`age`和`weight`,分别表示动物名,年龄和质量。`showInfo()`方法用于打印出动物的基本信息,而`move()`和`eat()`方法是抽象方法,需要在子类中实现具体的行为。
子类可以通过继承上述抽象类并实现`move()`和`eat()`方法来创建具体的动物类。例如,我们可以定义一个名为`Cat`的子类:
```python
class Cat(Animal):
def __init__(self, name, age, weight):
super().__init__(name, age, weight)
def move(self):
print(f"{self.name} is moving gracefully")
def eat(self):
print(f"{self.name} is eating fish")
```
上述代码中,我们创建了一个名为`Cat`的子类,并实现了`move()`和`eat()`方法来定义猫具体的行为。在`move()`方法中,我们打印出猫优雅的移动方式,而在`eat()`方法中,我们打印出猫吃鱼的行为。
现在,我们可以创建一个`Cat`类的实例,并调用`showInfo()`,`move()`和`eat()`方法来测试实现是否正确:
```python
my_cat = Cat("Tom", 3, 5)
my_cat.showInfo() # Output: Name: Tom, Age: 3, Weight: 5
my_cat.move() # Output: Tom is moving gracefully
my_cat.eat() # Output: Tom is eating fish
```
以上输出表明,我们成功地创建了一个`Cat`类的实例,并且实现了`move()`和`eat()`方法来定义猫的具体行为。
阅读全文