#多型,多種狀態!就是乙個類,根據不同的情況,採用相同的方法而產生不同結果的過程。
#用mysql資料庫類、oracle資料庫類、redis資料庫類(類似動物行為類)通過datebase抽象類實現新增資料、刪除資料、
修改資料、查詢資料的目的。
# 抽象類
import abc
class datebase(metaclass=abc.abcmeta):
# 定義規則
@abc.abstractmethod
def add(self):
pass
@abc.abstractmethod
def dele(self):
pass
@abc.abstractmethod
def mod(self):
pass
@abc.abstractmethod
def find(self):
pass
# mysql類
class mysql(datebase):
def add(self):
print('mysql的add')
def dele(self):
print('mysql的dele')
def mod(self):
print('mysql的mod')
def find(self):
print('mysql的find')
# oracle類
class oracle(datebase):
def add(self):
print('oracle的add')
def dele(self):
print('oracle的dele')
def mod(self):
print('oracle的mod')
def find(self):
print('oracle的find')
# redis類
class redis(datebase):
def add(self):
print('redis的add')
def dele(self):
print('redis的dele')
def mod(self):
print('redis的mod')
def find(self):
print('redis的find')
# 作出mysql,oracle,redis的三個物件
mysql = mysql()
oracle = oracle()
redis = redis()
# 多型的基本類
class action:
# 用於儲存物件的成員屬性
def __init__(self, db):
self.date = db
# 增def add(self):
self.date.add()
# 刪def dele(self):
self.date.dele()
# 修def mod(self):
self.date.mod()
# 訪def find(self):
self.date.find()
# 例項化行為類物件
act = action(mysql)
act.add()
act.dele()
act.mod()
act.find()
# 例項化行為類物件
act = action(oracle)
act.add()
act.dele()
act.mod()
act.find()
# 例項化行為類物件
act = action(redis)
act.add()
act.dele()
act.mod()
act.find()
兄弟連學python
#程式執行結果
'''mysql的add
mysql的dele
mysql的mod
mysql的find
oracle的add
oracle的dele
oracle的mod
oracle的find
redis的add
redis的dele
redis的mod
redis的find
'''python學習交流、資源共享群:563626388 qq
C 多型初探
為了定義乙個基類,然後派生出幾個子類分別對應不同的情況,在基類中寫好函式介面,之後可以使用基類作為介面來對幾種不同子類的情況進行操作 為了方便解釋,我寫乙個小的程式驗證一下相關的想法 abase rightarrow a rightarrow a1 abase 為基類,有純虛函式fun 為其派生類,...
C 多型性機制初探
作為物件導向程式設計的四大特徵 抽象 封裝 繼承和多型 之一的多型性,是考察開發人員對物件導向的基礎掌握程度的有力知識點。面試中也經常被問到像這樣的問題 請簡述一下什麼是多型?c 多型的實現機制是什麼?等等之類。今天我們就來小談一下c 的多型機制。首先,我們先開宗明義 在c 中,多型性通過虛函式 v...
8 物件導向 多型
1.定義 某一事物具有多種存在形態 2.體現 父類或者介面的引用指向其子類的物件 3.好處及弊端 提高 的擴充套件性,前期定義的 可以使用後期的內容 前期定義的內容不能呼叫後期子類的特有內容 4.轉型 對於轉型,始終都是子類物件在做著型別的變化 示例 abstract class animal cl...