面向对象 接口,抽象 ,多态

python 抽象与 java区别 抽象类 规范一个类的类 在python里面 抽象类和接口类 没区别

在jiava里是有区别 iava里面有接口类 规定里面的方法(代码)不能实现 # 但是没有抽象类 jiava只支持单继承
jiagva里买呢无论接口类还是抽象类都是一种代码的开发规范 只要是在接口类或者抽象类中去 越是继承他的子类必须实现某些方法 对于java的代码来货,
接口类
1.原则 开放封闭原则,用到闭包,装饰器 2.接口隔离原则! 3.依赖倒置(继承)原

#设计模式 开发的原则  ,在python里面是没有接口的概念 , # 但是 可以通过继承abc模块实现接口的功能 
 
#支付接口:
from  abc import ABCMeta,abstractclassmethod    #接口类的规范  按照这个规范写项目

#接口规范
class Payment(metaclass=ABCMeta):#规范
    @abstractclassmethod
    def pay(self,money):
        pass

        raise NotImplementedError  #抛出异常


#apple支付
class ApplePay(Payment):#继承使用规范类名
    def pay(self,money):  #这里的函数名不按上面的规范 def pay()来写,执行 ApplePay这个类的实例化函数名不一样 就会报错异常
        print('100')
# appl = ApplePay()
# appl.pay(100)


#支付宝支付
class AliPay(Payment):继承使用规范类名  #
    def pay(self,money):
        print('通过支付宝方式支付了%s元'%(money))
# ali = AliPay()
# ali.pay('500')

#微信支付
class WeChatpay(Payment):继承使用规范类名
    def pay(self,money):
        print("通过支付宝支付金额%s元"%(money))

# wec = WeChatpay()
# wec.pay(30)

 

#接口类是一个规范,
#多种支付方式,每一种支付方式都是一个类
#每一个类中定义一个支付方法完成支付功能
#每一种支付方式在程序中都是一个支付类 的对象
#拿到的支付对象 都去使用一个支付的方法
#w为了统一每一种支付的调用 所以就统一了调用的端口 pay函数

#######################开发原则################### 
#实现一个 每种类中有共同的类也有不同的类  如果用继承 每种类都会不一样 
#如实现一个动物园类,每种动物都有不同的属性,所以不能让一个父类继承 这时候就用到了 隔离继承类


from abc import  ABCMeta,abstractclassmethod
#隔离一个飞的类
class FlyAnimal(metaclass=ABCMeta):
  @abstractclassmethod
  
def fly(self):
  
print('飞类')
 
class SwinAnimal(metaclass=ABCMeta):
@abstractclassmethod
  def swin(self):
  def swin(self): print('游类')
 
class SwinAnimal(metaclass=ABCMeta):
    @abstractclassmethod
    def swin(self):
        print('游类')

class WalkAnimal(metaclass=ABCMeta):
    @abstractclassmethod
    def walk(self):
        print('走类')
class Swan(SwinAnimal,WalkAnimal,FlyAnimal):

 

    #飞类
    def fly(self):pass
    #游
    def swin(self):pass
    #走
    def walk(self):pass

class Qq(Swan,WalkAnimal):
    #走
    def  swin(self):
        pass
    #游
    def walk(self):
        pass

class Bird(FlyAnimal,WalkAnimal):
    #飞
    def fly(self):
        pass
    #走
    def walk(self):
        pass
Swan()
####这个动物类的原则也是抽象类吧所有 共有的的属性抽象到一个类中 #文件操作 抽象  1

 

#在python里面 抽象类型和接   1口类  没有区别 
#实现一个 word excel ppt 三个文件类操作

 

继承小结

继承的作用

减少代码的重用
提高代码可读性
规范编程模式

几个名词

抽象:抽象即抽取类似或者说比较像的部分。是一个从具题到抽象的过程。
继承:子类继承了父类的方法和属性
派生:子类在父类方法和属性的基础上产生了新的方法和属性

抽象类与接口类


多态指的是一类事物有多种形态:

 

 


动物有多种形态:人,狗,猪








posted @ 2018-03-08 21:09  胸不平$怎平天下  阅读(139)  评论(0编辑  收藏  举报