介面類和抽象類的作用:物件導向的**規範
1、定義
python原生沒有,支援多繼承,介面類中的所有方法都不能實現,
2、原則
介面隔離原則
3、規範**
繼承介面類的類,必要要定義介面類的方法,若不實現方法,在該類例項化的過程中會報錯
4、歸一化
基於同乙個介面類實現的類,可以進行歸一化
from abc importabstractmethod, 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 importabstractmethod, 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.乙...