物件導向之 多型與多型性

2022-09-17 07:48:12 字數 1838 閱讀 1111

1.什麼是多型?

多型指的是同一種事物的多種形態。

水--》冰,水蒸氣,液態水

2.為何要用多型?

多型性:

繼承同乙個類的多個子類中有相同的方法名

那麼子類產生的物件就可以不用考慮具體的型別而直接呼叫功能

3,如何用?

例如:

import abc

class animal(metaclass=abc.abcmeta):

@abc.abstractmethod #強制性讓子類繼承,不繼承則報錯

def speak(self):

pass

@abc.abstractmethod

def eat(self):

pass

# animal() #強調:父類是用來指定標準的,不能被例項化

class people(animal):

def speak(self):

print('say hello')

def eat(self):

pass

class dog(animal):

def speak(self):

print('汪汪汪')

def eat(self):

pass

class pig(animal):

def speak(self):

print('哼哼哼')

def eat(self):

pass

peo1=people()

dog1=dog()

pig1=pig()##

# peo1.speak()

# dog1.speak()

# pig1.speak()

# def my_speak(animal):

# animal.speak()

## my_speak(peo1)

# my_speak(dog1)

# my_speak(pig1)

## l=[1,2,3]

# s='helllo'

# t=(1,2,3)

## print(l.__len__())

# print(s.__len__())

# print(t.__len__())

## # def len(obj):

# # return obj.__len__()

## print(len(l)) # l.__len__()

# print(len(s)) #s.__len__()

# print(len(t))

# python推崇的是鴨子型別,只要你叫的聲音像鴨子,並且你走路的樣子也像鴨子,那你就是鴨子

class disk:

def read(self):

print('disk read')

def write(self):

print('disk wirte')

class process:

def read(self):

print('process read')

def write(self):

print('process wirte')

class file:

def read(self):

print('file read')

def write(self):

print('file wirte')

obj1=disk()

obj2=process()

obj3=file()

obj1.read()

obj1.write()

物件導向之多型 多型性

一 多型 多型指的是一類事物有多種形態 動物有多種形態 人,狗,豬 import abcclass animal metaclass abc.abcmeta 同一類事物 動物 abc.abstractmethod deftalk self pass class people animal 動物的形態...

Python學習 物件導向之多型 多型性

多型指的是一類事物有多種形態 import abc class animal metaclass abc.abcmeta 同一類事物 動物 abc.abstractmethod deftalk self pass class people animal 動物的形態之一 人 deftalk self ...

DAY7 物件導向之多型與多型性

多型指的是一類事物有多種形態 動物有多種形態 人,狗,豬 import abcclass animal metaclass abc.abcmeta 同一類事物 動物 abc.abstractmethod deftalk self pass class people animal 動物的形態之一 人 ...