面向对象三大特性
- 封装——定义类的准则
封装是根据职责将属性和方法封装到一个抽象的类中 - 继承——设计类的技巧
继承实现代码的重用,相同的代码不需要重复的编写,子类针对自己特有的需求,编写特定的代码。 - 多态——调用方法的技巧
不同的子类调用相同的父类方法,产生不同的执行结果。多态可以增加代码的灵活程度,以继承和重写父类方法为前提,多态是调用方法的技巧,不影响类的内部设计。
多态案例演练
需求:
- 在Dog类中封装方法game,普通狗只是简单的玩耍。
- 定义XiaoTianQuan 类继承自Dog,并且重写game 方法,哮天犬在天上玩。
- 定义Person类,并且封装一个和狗玩的方法,在方法内部,直接让狗对象调用 game方法
class Dog(object): def __init__(self,name): self.name = name def game(self): print("%s简单的玩耍" % self.name) class XiaoTianQuan(Dog): # def __init__(self,name): 已经继承了,不需要再写一遍啊!! # self.name = name def game(self): print("%s在天上玩耍" % self.name) class Person(object): def __init__(self,name): self.name = name def game_with_dog(self,dog): dog.game() wc = Dog("旺财") xtq = XiaoTianQuan("哮天犬") xm = Person("小明") xm.game_with_dog(xtq) xm.game_with_dog(wc)