python之继承和多态

当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。

继承有什么好处?最大的好处是子类获得了父类的全部功能。

# class Ww(object):   #创建一个父类
#     def __init__(self,name,kk):
#         self.name=name
#         self.kk=kk
#     def print1(self):
#         print(self.name,self.kk)
# class Ss(Ww):  #创建一个子类,这个子类的父类是Ww
#     pass
# class Dd(Ww):
#     def print1(self): #子类与父类函数同名时,子类的方法会覆盖父类的方法
#         print(self.kk)
# dd=Dd('wang',15)#调用子类Dd ,其属性是父类的属性
# dd.print1()
# ss=Ss('ll',153)#调用子类Ss ,其属性是父类的属性
# ss.print1()#调用父类中的方法

 多态

新增一个Animal的子类,不必对run_twice()做任何修改,实际上,任何依赖Animal作为参数的函数或者方法都可以不加修改地正常运行,原因就在于多态。

动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。

小结

继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写。

原文地址:https://www.cnblogs.com/wbf980728/p/14079292.html