# 一、接口类的作用是规范它的子类,跟后面学习的接口没关系。
from abc import abstractmethod,ABCMeta
class Pay(metaclass=ABCMeta): #metaclass是元类。
@abstractmethod
def pay(self):pass #pass意思是没代码。
#接口类:规范后面的子类,当子类没有pay方法时,抛出提示:
# Can't instantiate abstract class Apple with abstract methods pay 无法使用抽象方法pay来实例化抽象类apple,意思就是没有pay方法。
class Wechat(Pay):
def pay(self,money):
print('微信支付了%s元'%money) class Ali(Pay):
def pay(self,money):
print('支付宝支付了%s元'%money) class Apple(Pay):
def pppppppppppppppppppp(self,money):
print('苹果支付了%s元'%money) def P(a,b): #统一接口,方便用户。
a.pay(b) #多态,同一类事物有多种形态。 w = Wechat()
a = Ali()
ap = Apple()
# w.pay(100)
# a.pay(200)
# ap.pay(300)
P(w,100)
P(a,200)
P(ap,200) # 二、接口类的多继承:是面向对象的思想,符合接口类的接口隔离原则:
# 使用多个专门的接口(走路、游泳、飞分为三个专门的类),而不是使用单一的总接口(一个类有走路、游泳、飞三个方法),即客户端只需要有用的接口,不需要多余的。
# 老虎tiger 会走路、游泳
# 老鹰eagle 会走路、飞
# 天鹅swan 会走路、游泳、飞
from abc import abstractmethod,ABCMeta
class Walk(metaclass=ABCMeta):
@abstractmethod
def walk(self):pass class Swim(metaclass=ABCMeta):
@abstractmethod
def swim(self):pass class Fly(metaclass=ABCMeta):
@abstractmethod
def fly(self):pass class Tiger(Walk,Swim):
def walk(self):pass
def swim(self):pass class Eagle(Walk,Swim):
def walk(self):pass
def fly(self):pass class Swan(Walk,Swim):
def walk(self):pass
def swim(self): pass
def fly(self):pass

day15-接口类的更多相关文章

  1. java基础2.-------interface接口类,实现接口

    1.为什么使用接口,是把功能方法都写在一个类中,在其他需要调用的时候,通过implements实现该接口 2.接口可以继承多个父类接口,在实现接口的时候,实现类实现所有方法 3.在接口类写方法时,自动 ...

  2. PHP中的特殊类,接口类和抽象类(都不能直接实例化)

    接口类不用实例化,需要一一实现接口定义的所有方法.关键字interface implements 接口interface 是一个规定,给人继承用的东西,有点像抽象类在里面定义的方法,却不去实例化,而需 ...

  3. 调用c++接口类

    调用c++接口类 public class CarDeviceDll { /*对dll库进行一些初始化*/ [DllImport("IDI.dll")] public static ...

  4. 无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:

    无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”.此操作失败的原因是对 IID 为“{000208D5 -000 ...

  5. 类,抽象基类,接口类三者间的区别与联系(C++)

    结构上的区别: 普通类:数据+方法+实现 抽象类:数据+方法(一定包含虚方法n>=1)+部分方法的实现 接口类:方法(纯虚方法) http://www.cnblogs.com/Tris-wu/p ...

  6. PHP接口类interface的正确使用方法

    对于那些初学PHP语言的人来说,对于PHP的接口类也许了解的还不是很深入,接下来我们就来具体讲述PHP接口类interface的使用方法. 如何正确运用PHP XMLReader解析XML文档 深入解 ...

  7. PHP的接口类(interface)和抽象类(abstract)的区别

    <?php /** * 接口类:interface * 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类, * 那你就会问,我怎么知道他的某个功能的实现方法是怎么 ...

  8. php 抽象类和接口类

    PHP中抽象类和接口类都是特殊类,通常配合面向对象的多态性一起使用. 相同: ①两者都是抽象类,都不能实例化. ②只有接口类的实现类和抽象类的子类实现了 已经声明的 抽象方法才能被实例化. 不同: ① ...

  9. dojo省份地市级联之地市Dao接口类(四)

    dojo省份地市级联之地市Dao接口类 CityDao.java: /** * 地市 */ package com.you.dao; import java.util.List; import com ...

  10. dojo省份地市级联之省份Dao接口类(三)

    dojo省份地市级联之省份Dao接口类 ProvinceDao.java: /** * 省份-Dao */ package com.you.dao; import java.util.List; im ...

随机推荐

  1. XML--XML Schema Definition(三)

    参考 http://www.w3school.com.cn/schema/index.asp XSD 复合元素 复合元素指包含其他元素及/或属性的 XML 元素. 有四种类型的复合元素: 空元素 包含 ...

  2. map/vector遍历删除

    map遍历删除 map<int, vector<int>>::iterator it = g_map.begin(); for (; it != g_map.end(); /* ...

  3. 最短路问题--P4779 单源最短路(标准版)Dijkstra堆优化

    题目背景 2018 年7月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路. 最终,他因此没能与理想的大学达成契约. 小 F 衷心祝愿大家不再重 ...

  4. WGAN将数值限制在一定范围内 Python代码 tf.clip_by_value(p, -0.01, 0.01))

    tf.clip_by_value(p, min, max))   运用的是交叉熵而不是二次代价函数. 功能:可以将一个张量中的数值限制在(min,max)内.(可以避免一些运算错误:可以保证在进行lo ...

  5. sonarqube linux安装总结,集成jenkins

    第一条建议,安装sonarqube首先看好版本号,不同版本号的安装配置可能不同,如果你想走捷径,看官网对应发布的安装使用教程.https://www.sonarqube.org/downloads/ ...

  6. Ubuntu16.04编译tensorflow的C++接口

    原文:https://www.bearoom.xyz/2018/09/27/ubuntu1604buildtf4cpp/ 之前有一篇介绍到在windows下利用VS2015编译tensorflow的C ...

  7. zabbix使用短信猫实现报警

    因为公司运维的对象是政府单位,所以在实际的监控过程中无法连接到外网,所以最后报警选择的媒介是短信猫,下边就是具体的实施过程. 一.面临的问题 因为手头上的设备是串口的短信猫,但是zabbix serv ...

  8. 干货 | IP高防使用配置

    一.知识简介 DoS(Denial of Service),即拒绝服务攻击.该攻击是利用目标系统网络服务功能缺陷或者直接消耗其系统资源,目的是使该目标客户的系统不可用,无法提供正常的服务. DDoS( ...

  9. PHP实现快速排序算法相关案例

    <?php /** * 快速排序 --主要运用递归, 先把一个数找准位置,然后再递归把左右两边的数都找准位置 */ function QSort($a= []){ $nCount = count ...

  10. C/C++ 取整函数ceil(),floor()

    使用floor函数.floor(x)返回的是小于或等于x的最大整数.如:     floor(10.5) == 10    floor(-10.5) == -11 使用ceil函数.ceil(x)返回 ...