提取人类和猫咪的共同特征:哺乳类,作为父类。然后人类和猫咪都可以继承这个类。
class Mammal:
# 构造函数,第一个参数必须为self,把属性的值绑定在实例对象上,
# 相当于this指针
def __init__(self, name, sex):
# 对象属性
self.name = name
self.sex = sex
self.num_eyes = 2
#对象方法
def breathe(self):
print(self.name + "在呼吸...")
def poop(self):
print(self.name + "在拉粑...")
执行子类的函数时,优先看所属的类有没有该方法,没有的话,向上找父类的同名方法使用。
class Human(Mammal):
#当子类没有init方法时,调用父类的构造函数
#当给子类添加init方法时,优先调用子类的init方法,
# 如果还需要父类的构造函数则在子类的init方法里调用父类的构造函数
def __init__(self, name, sex):
# 使用super()调用父类的构造函数
super().__init__(name, sex)
self.has_tail=False
def read(self):
print(self.name + "在阅读...")
class Cat(Mammal):
def __init__(self, name, sex):
super().__init__(name, sex)
self.has_tail=True
def scratch_sofa(self):
print(self.name + "在挠沙发...")
class Dog(Mammal):
pass
# 如果不想向该类添加任何其他属性或者方法,请使用pass关键字。
Practice makes perfect.