author = 'yaesuj'
class A(object): def a(self): funca1 class B(A): pass
class A(object): def a(self): funca1 def x(self): funcx1 class B(A): def a(self): funca3 def b(self): funcb1 b=B() b.a()#这时用funca3而不是funa1 b.x()#funcx1
Sign in to make a reply
军宅HKC小G-BH2QZL
author = 'yaesuj'
自我总结:
继承:
B是A的子类,继承了A的数据类型和方法,Python的继承就是为了重用父类的代码:
多态:在代码运行的时候,传入相同的方法名(方法名一样,内容可以不一样),会自动调用实际类型的方法,这就是多态的意思
继承为前提的多态:
B是A的子类,B可以增加自己特有的方法,也可以把父类的方法覆盖重写,可理解为进化、变异、长江后浪推前浪之类。传入的只要是父类或者它的子类,就会自动调用实际类型的方法:
“开闭”原则
对扩展开放:允许新增Animal的子类
对修改封闭:不需要频繁修改依赖Animal类型的函数