zoukankan      html  css  js  c++  java
  • python面向对象(抽象类,接口类)

    python 中没有接口这个概念
    接口类,抽象类就是制定一个规范
    抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化
    抽象类的本质还是类,指的是一组类的相似性,包括数据属性(如all_type)和函数属性(如read、write),而接口只强调函数属性的相似性
    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()

    定义了抽象类之后:

      继承抽象类的子类中必须要含有抽象类中所有被装饰器装饰过的方法(函数),这样才可以运行

    
    
  • 相关阅读:
    257. Binary Tree Paths
    324. Wiggle Sort II
    315. Count of Smaller Numbers After Self
    350. Intersection of Two Arrays II
    295. Find Median from Data Stream
    289. Game of Life
    287. Find the Duplicate Number
    279. Perfect Squares
    384. Shuffle an Array
    E
  • 原文地址:https://www.cnblogs.com/dong-/p/9374406.html
Copyright © 2011-2022 走看看