多態 什麼是多態 指的是同一類/種事物的不同形態(其實就是繼承關係的表現) 為何要用多態 多態性:在多態的背景下,可以在不用考慮對象具體類型的前提下而直接使用對象 多態性的精髓:統一 這就好比開奧迪車,寶馬車和奇瑞qq,開的都是車,學開車不是學開某一輛車。 父類定義了,以後子類需要使用父類的功能,直 ...
多態
什麼是多態
指的是同一類/種事物的不同形態(其實就是繼承關係的表現)
為何要用多態
多態性:在多態的背景下,可以在不用考慮對象具體類型的前提下而直接使用對象
多態性的精髓:統一
這就好比開奧迪車,寶馬車和奇瑞qq,開的都是車,學開車不是學開某一輛車。
父類定義了,以後子類需要使用父類的功能,直接使用.語法就行(寫個例子)
class Animal():
def sound(self):
print('1111')
def run(self):
print('run fast')
class mouse(Animal):
def sound(self):
print('5555')
obj=mouse()
obj.run()
原理還是子類找不到就到父類中去找
導入abc模塊,能夠讓子類強制執行父類的功能
Import abc
Class Animal(metaclass=abc.ABCMeta):
@abc.abstractmethod (強制子類有speak這個功能)
Def speak(self):
Pass
父類是用來建立規範的,不能用來實例化,更無須實現內部方法:Animal()
import abc
class Animal(metaclass=abc.ABCMeta):
@abc.abstractmethod
def sound(self):
print('1111')
def run(self):
print('run fast')
class mouse(Animal):
def sound(self):
print('5555')
res=mouse()
print(res.sound())
擴展(Linux有一個統一思想----一切皆文件)
Python崇尚鴨子類型
class Duck():
def walk(self):
print('I walk like a duck')
def swim(self):
print('i swim like a duck')
class Person():
def walk(self):
print('this one walk like a duck')
def swim(self):
print('this man swim like a duck')
例子二:
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')
class Cpu:
def read(self):
print('Cpu read')
def write(self):
print('Cpu write')
obj1=Disk()
obj2=Memory()
obj3=Cpu()
obj1.read()
obj2.read()
obj3.read()
這隻是一種格式規範,用來統一代碼的格式