day15-接口类
# 一、接口类的作用是规范它的子类,跟后面学习的接口没关系。
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-接口类的更多相关文章
- java基础2.-------interface接口类,实现接口
1.为什么使用接口,是把功能方法都写在一个类中,在其他需要调用的时候,通过implements实现该接口 2.接口可以继承多个父类接口,在实现接口的时候,实现类实现所有方法 3.在接口类写方法时,自动 ...
- PHP中的特殊类,接口类和抽象类(都不能直接实例化)
接口类不用实例化,需要一一实现接口定义的所有方法.关键字interface implements 接口interface 是一个规定,给人继承用的东西,有点像抽象类在里面定义的方法,却不去实例化,而需 ...
- 调用c++接口类
调用c++接口类 public class CarDeviceDll { /*对dll库进行一些初始化*/ [DllImport("IDI.dll")] public static ...
- 无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:
无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”.此操作失败的原因是对 IID 为“{000208D5 -000 ...
- 类,抽象基类,接口类三者间的区别与联系(C++)
结构上的区别: 普通类:数据+方法+实现 抽象类:数据+方法(一定包含虚方法n>=1)+部分方法的实现 接口类:方法(纯虚方法) http://www.cnblogs.com/Tris-wu/p ...
- PHP接口类interface的正确使用方法
对于那些初学PHP语言的人来说,对于PHP的接口类也许了解的还不是很深入,接下来我们就来具体讲述PHP接口类interface的使用方法. 如何正确运用PHP XMLReader解析XML文档 深入解 ...
- PHP的接口类(interface)和抽象类(abstract)的区别
<?php /** * 接口类:interface * 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类, * 那你就会问,我怎么知道他的某个功能的实现方法是怎么 ...
- php 抽象类和接口类
PHP中抽象类和接口类都是特殊类,通常配合面向对象的多态性一起使用. 相同: ①两者都是抽象类,都不能实例化. ②只有接口类的实现类和抽象类的子类实现了 已经声明的 抽象方法才能被实例化. 不同: ① ...
- dojo省份地市级联之地市Dao接口类(四)
dojo省份地市级联之地市Dao接口类 CityDao.java: /** * 地市 */ package com.you.dao; import java.util.List; import com ...
- dojo省份地市级联之省份Dao接口类(三)
dojo省份地市级联之省份Dao接口类 ProvinceDao.java: /** * 省份-Dao */ package com.you.dao; import java.util.List; im ...
随机推荐
- mysql 杂
mysql> show create table table_name|view_name \G; 可以查看是视图还是表 \G 放到sql语句后,可以使每个字段打印到单独的行 1 I ...
- 分布式CAP定理(转)
在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理. 根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性). Availability(可 ...
- 2.Git基本配置
用户名和邮箱地址是本地git客户端的一个变量 . 用户每次提交代码都会记录用户名和邮箱 . 设置git的用户和邮箱git config [--local | --global | --system] ...
- java-简单工程模板
1.maven <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all< ...
- 用CNN及MLP等方法识别minist数据集
用CNN及MLP等方法识别minist数据集 2017年02月13日 21:13:09 hnsywangxin 阅读数:1124更多 个人分类: 深度学习.keras.tensorflow.cnn ...
- Java中包的基本管理与编译
在写程序的过程中,总会出现代码编译过关,但是项目偏偏报错的情况,遇到几种情况,都在此一一记录,希望以后少走弯路. 1.添加jsp文件的时候,会报错 Multiple annotations found ...
- 冲刺期末阶段一<公文档案流转管理系统>
今天下午的四节课要求自己完成公文流转管理系统,并规定时间看个人进程,相对来说我对增删改查掌握的不彻底,对项目的逻辑框架不太熟练,所以我感觉今天的进度有点慢.有待继续学习. 完成进度:1.分步骤先理清整 ...
- [kuangbin 带你飞] DP专题——HDU - 1024
Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- linux虚拟机安装oracle全过程(一)
起源:为方便系统迁移,导致的不必要的重装软件.故在虚拟机中搭建oracle数据库以及weblogic服务器(所有使用软件及资源链接附在结尾处) 1.安装虚拟机: 1.1.安装vmware 11破解版. ...
- css清除select的下拉箭头样式
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...