#多态,多种状态!就是一个类,根据不同的情况,采用相同的方法而产生不同结果的过程。
#用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