1、面向对象三大特征
- 封装
-
将属性和方法书写到类的?面的操作即为封装
-
封装可以为属性和方法添加私有权限
- 继承
-
子类默认继承父类的所有属性和方法
-
子类可以重写父类属性和方法
- 多态
-
传入?同的对象,产生不?同的结果
2、多态
多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而书写多态最好是依赖于继承去书写)。
定义:多态是一种使用对象的方式,子类重写父类方法,调用?同子类对象的相同父类方法,可以产生?同的执?结果。
好处:调用灵活,有?多态,?容?编写出通用的代码,做出通用的编程,以适应需求的不断变化
实现步骤:
-
定义父类,并提供公共方法
-
定义子类,并重写父类方法
-
传递子类对象给调用者,可以看到?同子类执?效果?同
代码实现多态:
# 需求:警务人员和警犬一起工作,警犬分两种:追击敌人和追查毒品,携带不同的警犬,执行不同的工作
# 定义父类,提供公共方法:警犬和人
class Dog(object):def work(self): # 父类提供统一的方法,哪怕是空方法passprint('指哪打哪...')# 1、定义子类,子类重写父类方法;定义两个类表示不同的警犬
class ArmyDog(Dog):
# 继承Dog类def work(self):
# 子类重写父类同名法print('追击敌人...')class DrugDog(Dog):def work(self):print('追查毒品...')# 2、定义人类
class Person(object):def work_with_dog(self, dog):dog.work()# 3、创建对象,调用不同的功能,传入?同的对象,执?不同的代码,即不同的work函数
ad = ArmyDog()
dd = DrugDog()
daqiu = Person()
daqiu.work_with_dog(ad)
daqiu.work_with_dog(dd)