(8)--多态初探

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


#用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值