python3筆記---抽象類例子
抽象類概念
1、抽象類是特殊的類,只能繼承,不能例項化
2、抽象類就是從一堆類中抽取相同的內容而來的,內容包括資料屬性和函式屬性
3、假設如果類是從現實物件抽象而來的,那麼抽象類就是基於類抽象而來的。
4、打個比如:就比如動物類,人類,狗類,貓類,這裡的動物類就是一個抽象類。
Python中的介面, 抽象類, 抽象函式
Python中的介面是個弱概念, 從Java中的概念延伸而來,;
Python中通過抽象類和抽象方法來實現一個介面, 例如Python3中, class 類繼承的 abc.ABC 即為抽象類, @abstractmethod 裝飾器使其裝飾的函式成為抽象函式,@abc.abstarctproperty裝飾器定義抽象屬性
一般情況下, Python多在單繼承的情況下使用抽象類,這樣的好處就是規範了子類,降低了複雜度。
抽象類的實現
from abc import abstractmethod, ABCMeta
class Foo(metaclass=ABCMeta):
@abc.abstractmethod
def fun(self):
pass
子類的實現
類的例項化物件呼叫對應的子類的方法,子類的方法必須覆蓋了抽象類的方法
詳細參考理解
# -*- coding:utf-8 -*-
import abc
class Animal(metaclass=abc.ABCMeta):
@abc.abstractmethod
def run(self):
pass
@abc.abstractmethod
def eat(self):
pass
class People(Animal):
def run(self):
print('people is walking')
def eat(self):
print('people is eating')
class Dog(Animal):
def run(self):
print('dog is walking')
def eat(self):
print('dog is eating')
class Pig(Animal):
def run(self):
print('pig is walking')
def eat(self):
print('pig is eating')
people1 = People()
dog1 = Dog()
pig1 = Pig()
people1.run()
dog1.run()
pig1.run()
相關文章
- 抽象類特點 學習筆記抽象筆記
- Java學習筆記之介面和抽象類Java筆記抽象
- PHP 手冊 (類與物件) 學習筆記十:抽象類PHP物件筆記抽象
- 抽象類的成員特點 學習筆記抽象筆記
- Python 學習筆記之類「物件導向,超類,抽象」Python筆記物件抽象
- Web 開發學習筆記(5) — 抽象出 Page 類Web筆記抽象
- python3 筆記18.構建類classPython筆記
- 【JAVA】筆記(5)--- final;抽象方法;抽象類;介面;解析繼承,關聯,與實現;Java筆記抽象繼承
- python3 筆記Python筆記
- 抽象類、抽象欄位、抽象方法抽象
- scala學習筆記:控制抽象筆記抽象
- 抽象方法和抽象類抽象
- 抽象類和抽象方法抽象
- 抽象類抽象
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- java抽象類和抽象方法Java抽象
- Java 抽象類Java抽象
- 14、抽象類抽象
- 15、C++ Primer 4th 筆記,類和資料抽象,友元C++筆記抽象
- PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- 《dive into python3》 筆記摘錄Python筆記
- TypeScript abstract 抽象類TypeScript抽象
- Python抽象類Python抽象
- 33_抽象類抽象
- 抽象類與介面抽象
- 抽象類VS介面抽象
- java之抽象類Java抽象
- C#抽象類C#抽象
- 介面與抽象類抽象
- 介面和抽象類抽象
- 21-抽象類抽象
- 抽象類和介面抽象
- WebSocket實戰之————GatewayWorker使用筆記例子WebGateway筆記
- 介面的行為抽象和抽象類的行為抽象抽象
- python3 筆記19.類的繼承和重寫、新增新方法Python筆記繼承
- java筆記-file類Java筆記
- js類的筆記JS筆記
- 8 python 抽象類Python抽象