面向对象 接口,抽象 ,多态
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 三个文件类操作
继承小结
继承的作用
减少代码的重用
提高代码可读性
规范编程模式
几个名词
抽象:抽象即抽取类似或者说比较像的部分。是一个从具题到抽象的过程。
继承:子类继承了父类的方法和属性
派生:子类在父类方法和属性的基础上产生了新的方法和属性
抽象类与接口类
多态指的是一类事物有多种形态:
动物有多种形态:人,狗,猪