目录
一、多态
含义:指同一种行为具有不同的表现形式
一个对象具有多种形态,在不同的使用环境中以不同的形态展示其功能,那我们就称该对象具有多态特征
eg:+ 号在不同的使用环境中,有着不同的功能
print(10+10) # 算术运算符:可以实现整型之间的相加操作
print('10'+'10') # 字符串拼接:实现字符串之间的拼接操作
1.1 多态的前提
前提:
1、继承
2、重写
多态的特点:
1. 不关注对象的类型,关注对象具有的行为,也就是对象的实例方法是否同名
2. 多态的好处可以增加代码的外部调用灵活度,让代码更加通用,兼容性比较强
3. 不同的子类对象,调用相同的父类方法,会产生不同的执行结果
eg:在子类中,同一种方法shout,有不同的表现形式
class Animal(object):
"""父类:动物类"""
def shout(self):
print("动物会叫")
class Cat(Animal):
"""子类一:猫类"""
def shout(self):
print("小猫喵喵喵")
class Dog(Animal):
"""子类二:狗类"""
def shout(self):
print("小狗汪汪汪")
cat = Cat()
cat.shout()
dog = Dog()
dog.shout()
# 输出内容:
# 小猫喵喵喵
# 小狗汪汪汪
1.2 多态性
多态性:一种调用方法,不同的执行结果
eg:test 函数传入不同的对象,执行不同对象的eat方法
class Animal(object):
def eat(self):
print("我会干饭")
class Pig(Animal):
def eat(self):
print("猪吃猪饲料")
class Dog(Animal):
def eat(self):
print("狗吃狗粮")
# 多态性:定义一个统一的接口,一个接口多种实现
def test(obj): # 形参obj
obj.eat()
animal = An