PyThon对象的综合用法
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self):
print(f"{self.name} is 干饭中")
def make_sound(self):
pass
# 定义 Dog 子类
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
def make_sound(self):
print("你在狗叫什么!")
# 定义 Cat 子类
class Cat(Animal):
def __init__(self, name, age, color):
super().__init__(name, age)
self.color = color
def make_sound(self):
print("阳光开朗听泉猫!")
# 定义 Bird 子类
class Bird(Animal):
def __init__(self, name, age, can_fly):
super().__init__(name, age)
self.can_fly = can_fly
def make_sound(self):
print("芜湖起飞!!!")
# 创建实力
dog = Dog("dahuang", 5, "Golden Retriever")
cat = Cat("mimi", 3, "pink")
bird = Bird("rose", 2, True)
dog.eat()
dog.make_sound()
cat.eat()
cat.make_sound()
bird.eat()
bird.make_sound()
本段代码定义了一个动物类 Animal
和三个子类 Dog
, Cat
, Bird
,每个子类都继承自 Animal
类。下面是对代码逻辑结构的解析:
1.定义 Animal
基类:
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self):
print(f"{self.name} is 干饭中")
def make_sound(self):
pass
Animal
类定义了两个方法:eat
和 make_sound
。eat
方法用于打印出一个动物正在吃饭的消息,make_sound
方法是一个空方法,没有实现任何功能,子类可以根据需要覆盖这个方法。
2.定义 Dog
子类:
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
def make_sound(self):
print("你在狗叫什么!")
Dog
类继承自 Animal
类,并添加了一个新的属性 breed
。同时,它覆盖了 make_sound
方法,以便狗发出特定的声音。
3.定义 Cat
子类:
class Cat(Animal):
def __init__(self, name, age, color):
super().__init__(name, age)
self.color = color
def make_sound(self):
print("阳光开朗听泉猫!")
Cat
类同样继承自 Animal
类,并添加了一个新的属性 color
。它也覆盖了 make_sound
方法,以便猫发出特定的声音。
4.定义 Bird
子类:
class Bird(Animal):
def __init__(self, name, age, can_fly):
super().__init__(name, age)
self.can_fly = can_fly
def make_sound(self):
print("芜湖起飞!!!")
Bird
类同样继承自 Animal
类,并添加了一个新的属性 can_fly
,表示鸟是否能够飞行。它也覆盖了 make_sound
方法,以便鸟发出特定的声音。
5.创建实例:
dog = Dog("dahuang", 5, "Golden Retriever")
cat = Cat("mimi", 3, "pink")
bird = Bird("rose", 2, True)
这段代码创建了三个动物实例:一只名叫 “dahuang” 的5岁金毛猎犬,一只名叫 “mimi” 的3岁粉色猫,一只名叫 “rose” 的2岁能够飞行的鸟。
6.调用实例方法:
dog.eat()
dog.make_sound()
cat.eat()
cat.make_sound()
bird.eat()
bird.make_sound()
-
这些代码分别调用了每个动物实例的
eat
和make_sound
方法,并打印出相应的消息。
总的来说,这段代码演示了如何使用Python类和继承来创建一个基类 Animal
,以及从它派生出特定类型的动物子类 Dog
, Cat
, Bird
。每个子类都有其独特的属性和行为,这些通过覆盖基类的方法来实现。通过创建实例并调用其方法,可以模拟动物的饮食和发出声音的行为。