码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象:接口类、抽象类

时间:2019-10-14 23:42:31      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:self   div   抽象类   elf   str   col   第四版   color   mon   

# python 没有接口这个概念
# 接口类,抽象类: 制定一个规范.
  接口类,抽象类:python中就是一样的
    1,归一化设计.
    2,制定一个规范,凡是继承我类的类,必须有我规定的方法.
#  第一版
class Alipay:
    def __init__(self,money):
        self.money = money

    def pay(self):
        print(使用支付宝支付了%s %self.money)


class Jdpay:
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(使用京东支付了%s % self.money)

a1 = Alipay(200)
a1.pay()

j1 = Jdpay(100)
j1.pay()

#  第二版  改进,让你支付的方式一样

class Alipay:
    def __init__(self,money):
        self.money = money

    def pay(self):
        print(使用支付宝支付了%s %self.money)


class Jdpay:
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(使用京东支付了%s % self.money)

def pay(obj):
    obj.pay()

a1 = Alipay(200)
j1 = Jdpay(100)
pay(a1)  # 归一化设计
pay(j1)

# 第三版,野生程序员来了.......要增加一个微信支付的功能.

class Alipay:
    def __init__(self,money):
        self.money = money

    def pay(self):
        print(使用支付宝支付了%s %self.money)


class Jdpay:
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(使用京东支付了%s % self.money)

class Wechatpay:

    def __init__(self,money):
        self.money = money

    def weixinpay(self):
        print(使用微信支付了%s % self.money)


def pay(obj):
    obj.pay()

a1 = Alipay(200)
j1 = Jdpay(100)
pay(a1)  # 归一化设计
pay(j1)

w1 = Wechatpay(300)
w1.weixinpay()

# 第四版,发回去重新改,制定规则,抽象类,接口类

from abc import ABCMeta,abstractmethod


class Payment(metaclass=ABCMeta):  # 抽象类(接口类):
    @abstractmethod
    def pay(self): pass  # 制定了一个规范
    @abstractmethod
    def func(self):pass


class Alipay(Payment):
    def __init__(self,money):
        self.money = money

    def pay(self):
        print(使用支付宝支付了%s %self.money)


class Jdpay(Payment):
    def __init__(self, money):
        self.money = money

    def pay(self):
        print(使用京东支付了%s % self.money)

class Wechatpay(Payment):

    def __init__(self,money):
        self.money = money

    def pay(self):
        print(使用微信支付了%s % self.money)


def pay(obj):
    obj.pay()
w1 = Wechatpay(200)
a1 = Alipay(200)
j1 = Jdpay(100)
pay(a1)  # 归一化设计
pay(j1)

w1 = Wechatpay(300)
w1.weixinpay()

 

面向对象:接口类、抽象类

标签:self   div   抽象类   elf   str   col   第四版   color   mon   

原文地址:https://www.cnblogs.com/skydragon/p/11674672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!