一、面向对象三大特性
二、多态
定义:多态是⼀种使⽤对象的⽅式,⼦类重写⽗类⽅法,调⽤不同⼦类对象的相同⽗类⽅法,可以产⽣不同的执⾏结果。
一个父类,可以继承给多个子类,每个不同的子类可以创建多个对象,每个对象可以调用父类之父类的方法,产生不同的执行结果。
# 犬与人协同工作,人协同不同的犬执行不同的任务
class Dog:
def work(self): # ⽗类提供统⼀的⽅法,哪怕是空⽅法
print("指哪打哪")
class ArmyDog(Dog): # 继承Dog类
def work(self): # ⼦类重写⽗类同名⽅法
print("追击敌人")
class DrugDog(Dog):
def work(self): # ⼦类重写⽗类同名⽅法
print("追查毒品")
class Person:
def work_with_dog(self, dogtype): # 传⼊不同的对象,执⾏不同的代码,即不同的work函数
dogtype.work()
ad = ArmyDog()
dd = DrugDog()
p1 = Person()
ad.work() # 追击敌人
p1.work_with_dog(ad) # 追击敌人
p1.work_with_dog(dd) # 追查毒品
三、设置和访问类属性
- 类属性就是类对象所拥有的属性,类属性被该类的所有实例对象所共有。