1. 什么是多态
多态指的是同一种/类事物的不同形态
2.为何要用多态性
1 增加了程序的灵活性
2 增加了程序的可扩张性
多态性:分为静态多态性和动态多态性
多态性:在多态的背景下,可以在不用考虑对象具体类型的前提下而直接使用对象
多态性的精髓:统一
3. 如何用多态
class Animal:
def speak(self):
pass
class People(Animal):
def shuo(self):
print('say hello')
class Dog(Animal):
def jiao(self):
print('汪汪汪')
class Pig(Animal):
def chang(self):
print('哼哼哼')
obj1=People()
obj2=Dog()
obj3=Pig()
# obj1.speak()
# obj2.speak()
# obj3.speak()
def speak(animal):
animal.speak()
speak(obj1)
speak(obj2)
speak(obj3)
python 崇尚鸭子类型
逗比时刻:
Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’
python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象
也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。
例1:利用标准库中定义的各种‘与文件类似’的对象,尽管这些对象的工作方式像文件,但他们没有继承内置文件对象的方法
class Disk:
def read(self):
print('Disk read')
def write(self):
print('Disk write')
class Memory:
def read(self):
print('Mem read')
def write(self):
print('Mem write')
obj1=Disk()
obj2=Memory()
obj1.read()
obj2.read()