抽象类 和 接口类

 1 #接口类  也可以理解为抽象类   用来建立一套规范    接口是一种设计思想 设计模式
 2 #接口类  默认多继承   接口类中的所有方法,都必须不能实现    --java
 3 #抽象类  不支持多继承,抽象类中可以实现一些方法   鸭子模型    --java
 4 from abc import abstractmethod,ABCMeta
 5 class Payment(metaclass=ABCMeta):#元类    默认的元类是type
 6     @abstractmethod
 7     def pay(self):
 8         raise NotImplementedError   #没有实现这个方法的异常
 9
10
11 class Wechar(Payment):
12     def pay(self,money):
13         print("已经用微信支付了%s元"%money)
14
15
16 class Alipay(Payment):
17     def pay(self,money):
18         print("已经用支付宝支付了%s元"%money)
19
20
21
22 class Applepay(Payment):
23     def fukuan(self,money):
24         print("已经用applepay支付了%s元"%money)
25
26
27 def pay(pay_obj,money):
28     pay_obj.pay(money)
29
30
31 if __name__=="__main__":
32     #app=Applepay()#用于测试  会报错 TypeError: Can‘t instantiate abstract class Applepay with abstract methods pay
33     pay(Alipay,200)

原文地址:https://www.cnblogs.com/Mengchangxin/p/10335806.html

时间: 2024-10-28 10:32:25

抽象类 和 接口类的相关文章

Python抽象类和接口类

一.抽象类和接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能. 实践中,继承的第一种含义意义并不很大,甚至常常是有害的.因为它使得子类与基类出现强耦合. 继承的第二种含义非常重要.它又叫"接口继承".接口继承实质上是要求"做出一个良好的抽象,这个抽象规定了一个兼容接口,使得外部调用

PHP的抽象类、接口类的区别和选择【转载】

本文转自:http://blog.csdn.net/fanteathy/article/details/7309966 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过关键字extends继承. 2.接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量.抽象类中可以声明各种类型成员变量,实现数据的封装.(另Java接口中的成员变量都要声明为public static final类型) <?php abstract c

python 抽象类和接口类

一.接口类 继承的两种用途: 1.继承基类的方法,并且做出自己的改变或者扩展(代码重用) 2.声明某个子类兼容于某个基类,定义一个接口类interface,接口类中定义了一些接口名(就是函数 名)  且并未实现接口中的功能. 实践中,继承的第一种用法意义不大,有时候常常有害的.因为它使得子类与基类出现强耦合. 继承的第二种含义非常重要,它叫‘接口继承’. 接口继承是实质上要求‘做出一个良好的抽象’,这个抽象规定了一个兼容接口,使得外部调用者无需关心内部细节,可以一视同仁的处理实现特定接口的所有对

java -- 抽象类与接口类

一.protected权限修饰符 public class ProtectedTest { public static void main(String[] args) { // protected修饰的属性和方法本包中可以调用. // 不同包中的子类也可以访问protected修饰的属性和方法 Person person = new Person(); } } import com.atguigu.exer.Person; public class ProtectedTest { public

C++中的抽象类和接口类

接口类是一种特殊的抽象类. 抽象类: 类中至少含有一个纯虚函数. 抽象类的子类如果没有完全实现父类的纯虚函数,那么该子类也是一个抽象类. 接口类: 满足两个条件 (1)没有成员变量 (2)所有成员函数都为public且纯虚. 原文地址:https://www.cnblogs.com/Stephen-Qin/p/12436180.html

抽象类和接口类 取得实例

抽象类和接口不能用new()来创建实例, 但有一些库的抽象类和接口(Java 8) 提供了静态方法去创建实例,一般使用newInstance(). 例如库: import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.s

抽象类(接口类)的作用

抽象类的作用: 1)构建子类的共有属性: 2)制定子类的接口规范. 3)提供一些公共服务功能(子类复用): 4)建立稳定的抽象层依赖(便于架构层面的整体复用). 5)便于功能的扩展,新建的子类,通过注入接口能够很便利的与系统原有架构发生联系. 其它观点: 一.抽象类提供了部分实现,使子类可以重用部分抽象类的代码二.抽象类为其子类提供了共同的接口(注意:这里说我接口与 java 中的 interface 是不同的)    也就是别人可以将各个子类的对象当成抽象类的对象使用. 抽象类将事物的共性的东

抽象类 抽象方法 接口 类部类 匿名类部类 设计模式之单例模式(懒汉模式及饿汉模式)

---恢复内容开始--- 抽象类  关键字  abstract 不能被实例化(创建对象),可通过类名调用静态方法 子类继承抽象类必须重写父类的所有抽象方法,然后用多态调用 接口:关键字 interface   类名 implements 接口名 1.接口中只能有抽象方法,并且不能被实例化,通过多态调用 2.接口与接口之间的关系: 继承关系(可以多继承); 类部类: 在类中定义的类 创建类部类对象    外部类名.内部类名  对象名 = new 外部类名().new内部类名() 匿名类部类: 在写

php 接口类与抽象类的实际作用

1.php 接口类:interface 其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 : interface Shop { public function buy($gid); public function sell($gid); public function view($gid); } 我声明一