python 介面類和抽象類

2022-04-02 05:42:51 字數 1613 閱讀 4107

介面類和抽象類的作用:物件導向的**規範

1、定義

python原生沒有,支援多繼承,介面類中的所有方法都不能實現,

2、原則

介面隔離原則

3、規範**

繼承介面類的類,必要要定義介面類的方法,若不實現方法,在該類例項化的過程中會報錯

4、歸一化

基於同乙個介面類實現的類,可以進行歸一化

from abc import

abstractmethod, abcmeta

"""型別:介面類

型別:多繼承

原則:介面隔離原則

作用:**規範,cat類繼承swim和walk介面,介面裡有的方法,在cat類也必須有,若沒有,則在例項化cat的時候報錯報錯

"""class fly(metaclass=abcmeta):

@abstractmethod

def fly(self):pass

class swim(metaclass=abcmeta):

@abstractmethod

def swim(self):pass

class walk(metaclass=abcmeta):

@abstractmethod

def walk(self):pass

class

cat(swim, walk):

defswim(self):

print('

swim')

defwalk(self):

print('

walk')

cat1 =cat()

cat1.walk()

1、定義

python原生有,多用於單繼承

2、**規範

在抽象類中定義的方法,在類中要實現,否則在呼叫的時候報錯

from abc import

abstractmethod, abcmeta

"""抽象類

單繼承抽象類中的方法可以實現

**規範:類繼承抽象類,必須實現抽象類的所有方法,若沒有則在例項化的時候報錯

"""class file(metaclass=abcmeta):

@abstractmethod

defread(self):

with open(file='

test

', mode='

r', encoding='

utf-8

') as f:

pass

@abstractmethod

defwrite(self):

with open(file='

test

', mode='

w', encoding='

utf-8

') as f:

pass

class

text(file):

defread(self):

print('

read text')

defwrite(self):

print('

write text')

t1 =text()

t1.write()

Python 介面類 抽象類

建立乙個介面類 抽象類的規範 from abc import abstractmethod,abcmeta class payment metaclass abcmeta 元類 預設的元類 type abstractmethod def pay self,money pass 沒有實現這個方法 介面...

介面和抽象類

介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...

抽象類和介面

抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...