说明
1、调用方只管调用而不管细节如何,当我们增加一个子类时,只要确保新方法写得正确,而不管原始代码。
2、对扩展开放:允许子类重写方法函数。
3、对修改封闭:不重写,直接继承父类方法函数。
举例
class Animal():
def who(self):
print("I am an Animal")
class Duck(Animal):
def who(self):
print("I am a duck")
class Dog(Animal):
def who(self):
print("I am a dog")
class Cat(Animal):
def who(self):
print("I am a cat")
def func(obj):
obj.who()
if __name__ == "__main__":
duck=Duck()
dog=Dog()
cat=Cat()
func(duck)
func(dog)
func(cat)