面向对象:接口类抽象类

Posted skydragon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象:接口类抽象类相关的知识,希望对你有一定的参考价值。

# 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()

 

以上是关于面向对象:接口类抽象类的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript,面向对象,类、构造函数、继承、抽象类、接口和封装

初识面向对象-接口类抽象类封装

Python面向对象 | 抽象类和接口类

面向对象 接口

Python_015(面向对象(接口类,抽象类,多态,封装)

面向对象:接口类抽象类