网站打开空白页面,支付网站搭建,网络摄像头定制开发,wordpress 新窗口【一】什么是多态 多态是指一个事物的多种形态
【二】示例 例如动物类中有猫类、狗类、猪类
import abc
# 总类 动物类
class Animal(metaclassabc.ABCMeta):abc.abstractmethoddef talk(self):pass
# 具体类 猫类
class Cat(Animal):def talk(self):print(fabc.ABCMeta):abc.abstractmethoddef talk(self):pass
# 具体类 猫类
class Cat(Animal):def talk(self):print(f喵)
# 具体类 狗类
class Dog(Animal):def talk(self):print(f汪)
【三】什么是多态性 指事务的多种形态的性质 多态性绑定在继承的背景下使用时有时也称为多态性 多态性是指在不考虑实例类型的情况下使用实例
例如 老师和学生都接收到到下课铃声响了的信息 老师执行的是下班操作 学生执行的是放学操作 虽然二者接收到的信息一样但是执行效果不同
【1】静态多态性
运算表达式
【2】动态多态性
import abc
# 总类 动物类
class Animal(metaclassabc.ABCMeta):abc.abstractmethoddef talk(self):pass
# 具体类 猫类
class Cat(Animal):def talk(self):print(f喵)
# 具体类 狗类
class Dog(Animal):def talk(self):print(f汪)
class People(Animal):def talk(self):print(f说话)
def talk(obj):obj.talk()
people People()
cat Cat()
talk(people) # 说话
talk(cat) # 喵
【四】为什么要学多态性
增强代码的可读性和可扩展性
【五】鸭子类型 理解长得像鸭子走起来像鸭子叫起来像鸭子你就是鸭子 这是一个概念 在每一个语言中都有这样一个概念这是一种语言风格
【1】在Java里面 定义接口并且继承后的接口必须重写
【2】在python中不一样 强制重写父类方法需要使用抽象类
# 二者都像鸭子因而就可以当鸭子一样去用
class NormalDuck():def eat(self):print(f正常鸭子可以吃饭)
def walk(self):print(f正常鸭子可以走路)
class RockDuck():def eat(self):print(f肉鸭子可以吃饭)
def walk(self):print(f肉鸭子可以走路)