面向对象

多态

  • 在不同情况下用一个函数名启用不用方法,即同一个方法,不同的作用。体现灵活性。
  • 对象调用同一个方法会出现不同的表现形式(结果),多态只关心对象是否有该方法(功能), 不关心对象的类型
  • 多态强调的是要有指定的功能,不关心对象的类型。
# 鸭子类
class Duck(object):
    def fly(self):
        print("鸭子笨笨的飞起来了")
        
# 天鹅类
class Swan(object):
    def fly(self):
        print("天鹅翱翔的飞")
        
# 飞机类
class Plane(object):
    def fly(self):
        print("飞机呼呼的飞起来了")

# 实现飞的功能, 根据不同参数实现不同飞的效果
def fly(obj):
    # 使用指定对象,调用飞的功能方法
    # 多态:在方法内部,不关心obj的类型,只关心obj对象是否具有指定的功能方法
    # 多态的好处,代码更加通用,多态代码不需要进行修改
    obj.fly()
    
# 通过一个函数,启用的功能是不一样的
duck = Duck()
fly(duck)
swan = Swan()
fly(swan)

重写

  • 子类重写父类方法的目的: 父类的功能方法无法满足子类的需求,那么子类就可以重写父类的方法。
  • 子类重写父类方法的注意点:
  1. 要有继承关系
  2. 子类的方法名要和父类的方法名相同案例:在多继承的案例种就已经使用了重写