美文网首页
30. OOP-多重继承

30. OOP-多重继承

作者: 牛崽儿酷 | 来源:发表于2016-07-18 11:05 被阅读0次

我们要给动物再加上Runnable和Flyable的功能,只需要先定义好Runnable和Flyable
的类:
class Runnable(object): def run(self): print('Running...') class Flyable(object): def fly(self): print('Flying...')
对于需要Runnable功能的动物,就多继承一个Runnable,例如Dog:
class Dog(Mammal, Runnable): pass

通过多重继承,一个子类就可以同时获得多个父类的所有功能


在设计类的继承关系时,通常,主线都是单一继承下来的,例如,Ostrich继承自Bird。但是,如果需要“混入”额外的功能,通过多重继承就可以实现,比如,让Ostrich除了继承自Bird外,再同时继承Runnable。这种设计通常称之为MixIn

Python自带的很多库也使用了MixIn。举个例子,Python自带了TCPServer和UDPServer这两类网络服务,而要同时服务多个用户就必须使用多进程或多线程模型,这两种模型由ForkingMixIn和ThreadingMixIn提供。通过组合,我们就可以创造出合适的服务来。比如,编写一个多进程模式的TCP服务,定义如下:
class MyTCPServer(TCPServer, ForkingMixIn): pass

编写一个多线程模式的UDP服务,定义如下:
class MyUDPServer(UDPServer, ThreadingMixIn): pass

相关文章

  • 30. OOP-多重继承

    我们要给动物再加上Runnable和Flyable的功能,只需要先定义好Runnable和Flyable的类:cl...

  • 003_OOP的概念学习

    OOP-面向对象编程,核心概念:对象,类,继承,接口,软件包。 对象(Object) An object is a...

  • 慕课网-C++远征之继承篇(下)-学习笔记

    C++远征之继承篇(下) 多继承与多重继承 多重继承: 多继承: 如果不写,那么系统默认为private继承 多重...

  • Java中关于多重继承的问题

    多重继承的含义 一.用接口实现多重继承 二.用内部类实现多重继承

  • 4.0 C++远征:多继承和多重继承

    5-1多继承和多重继承 1.多重继承 线性继承两次及其以上为多重继承。 2.多继承 一个派生类同时有多个基类。

  • 面向对象

    类的定义方法 子类的定义 多重继承 python允许多重继承。

  • 接口,抽象类,内部类

    1.多重继承 Java 并不支持多重继承,多重继承是指一个类可以继承多个类,也就是一个类可以有多个直接父类。 抽象...

  • iOS面试120个基础知识点及面试题

    1.OC的类可以多重继承吗?可以实现多个接口吗?要想实现类似多重继承如何实现?答:OC不可以实现多重继承。可以实现...

  • Python多重继承(拓扑排序)(9)

    Python跟Java不同,Java只能单继承(不过有多实现),而Python能够多重继承。其多重继承遵循拓扑排序...

  • 多重继承

    采用多重继承首先,主要的类层次仍按照哺乳类和鸟类设计: 现在,我们要给动物再加上Runnable和Flyable的...

网友评论

      本文标题:30. OOP-多重继承

      本文链接:https://www.haomeiwen.com/subject/gxmpjttx.html