python 的继承


#-*- coding:utf-8 -*-
class A(object):
def __init__(self):
print('A:我是肯定会执行的!!') def fun(self):
print('AAAA') def fun_A(self):
print('这是A单独有的!!')
pass class B(object):
def __init__(self):
print('B:我是肯定会执行的!!') def fun(self):
print('BBBB')
pass class C(A,B):
def __init__(self):
super(C, self).__init__()
super(A, self).__init__()
# super().__init__()#python3以上语法
print('C:我是肯定会执行的!!') def fun(self):
super(C, self).fun()
super(A, self).fun()
# super().fun()#python3以上语法
print('CCCC')
pass class D(B,A):
def __init__(self):
super(D,self).__init__()
super(B, self).__init__()
# super().__init__()#python3以上语法
print('D:我是肯定会执行的!!') def fun(self):
super(D, self).fun()
super(B, self).fun()
# super().fun()#python3以上语法
print('DDDD')
pass f1=C()
print(C.__mro__)#显示继承顺序,从子到父
f1.fun()
f1.fun_A()
print('---------------------------')
f2=D()
print(D.__mro__)#显示继承顺序,从子到父
f2.fun()
f2.fun_A()
输出:

A:我是肯定会执行的!!
B:我是肯定会执行的!!
C:我是肯定会执行的!!
(<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <type 'object'>)
AAAA
BBBB
CCCC
这是A单独有的!!
---------------------------
B:我是肯定会执行的!!
A:我是肯定会执行的!!
D:我是肯定会执行的!!
(<class '__main__.D'>, <class '__main__.B'>, <class '__main__.A'>, <type 'object'>)
BBBB
AAAA
DDDD
这是A单独有的!!

 python 多态

#-*- coding:utf-8 -*-
class animal:
def run(self):
pass class people(animal):
def run(self):
print('people is walking!!') class pig(animal):
def run(self):
print('pig is walking!!') class dog(animal):
def run(self):
print('dog is walking!!') class fun(object):
def run(self,obj):
obj.run() f=fun()#在这种情况下,由animal定义方法名,直接调用fun的方法,实现多态,统一接口
f.run(people())
f.run(pig())
f.run(dog()) 输出:

people is walking!!
pig is walking!!
dog is walking!!

python 继承 多态的更多相关文章

  1. python面向对象之继承/多态/封装

    老师说,按继承/多态/封装这个顺序来讲. 子类使用父类的方法: #!/usr/bin/env python # coding:utf-8 class Vehicle: def __init__(sel ...

  2. Python设计模式 - 基础 - 封装 & 继承 & 多态

    面向对象的核心是对象,世间万物都可以看作对象,任何一个对象都可以通过一系列属性和行为来描述,可以包含任意数量和类型的数据或操作.类是用来描述具有相同属性和方法的所有对象的集合.类通常是抽象化的概念,而 ...

  3. python oop常用术语 继承 多态 封装

    面向对象优点 1.通过封装明确了内外 2.通过继承+多态在语言层面支持了归一化设计 抽象/实现 抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于 绘程序结构,从而实现 ...

  4. python的继承多态以及异常处理

    1.单继承 # 动物类 class Animal(object): def __init__(self, name): self. __name = name def run(self): print ...

  5. python继承,判断类型,多态

    1.python中继承 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: class Person(object): def __init_ ...

  6. Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)

    Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态) 1.面向对象的三大特性: (1)继承 ​ 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以 ...

  7. python面向对象(封装,继承,多态)

    python面向对象(封装,继承,多态) 学习完本篇,你将会深入掌握 如何封装一个优雅的借口 python是如何实现继承 python的多态 封装 含义: 1.把对象的属性和方法结合成一个独立的单位, ...

  8. python基础——多态与多态性

    python基础--多态与多态性 1 多态 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承) 1. 序列类型有多种形态:字符串,列表,元组. 2. 动物有多种形态:人, ...

  9. python之多态

    python之多态 一.什么是多态? 同一种事物,有多种形态! class Animal: #同一类事物:动物 def talk(self): pass class Cat(Animal): #动物的 ...

随机推荐

  1. JQuery EasyUI 1.5.1 美化主题大包

    https://my.oschina.net/magicweng/blog/833266

  2. Ng第十一课:机器学习系统的设计(Machine Learning System Design)

    11.1  首先要做什么 11.2  误差分析 11.3  类偏斜的误差度量 11.4  查全率和查准率之间的权衡 11.5  机器学习的数据 11.1  首先要做什么 在接下来的视频将谈到机器学习系 ...

  3. 基础总结篇之一:Activity生命周期[转]

    from:http://blog.csdn.net/liuhe688/article/details/6733407   基础总结篇之一:Activity生命周期 子曰:溫故而知新,可以為師矣.< ...

  4. 20169207《Linux内核原理及分析》第十三周作业

    第一周作业::对Linux的基本知识进行了了解,并对基本操作进行熟悉和应用. 第二周作业::了解了冯诺依曼体系结构.各种寄存器的功能和汇编指令的作用和功能. 第三周作业::这周主要了解了Linux系统 ...

  5. Qt 中的消息对话框

    1. QMessagebox 类的几个静态成员函数,可以直接调用创建对话框 StandardButton critical(QWidget * parent, const QString &  ...

  6. java中三种注释

    //单行注释 /* 多行注释 */ /** * 文档注释 * version 2018.10.25 * authou GMY */

  7. oc门

    OC门电路,即集电极开路输出结构门电路,电路结构图为:

  8. [Word]让字符重合显示

    某些时候需要让字符重合显示,比如您好二字,显示为: 需要用到word的Advance域,他可以让后面的文字上下左右移动一定的磅. 譬如上面你好的显示:word中域代码为: 意思是好字向left移动了2 ...

  9. WPF 斜角border

    最近看了一些科技感UI设计,其中很多的按钮都不是常见的圆角边,而是斜角边.查了一下,wpf中好像没有现成的斜角border,网上也没搜到现成的,于是自己写了点时间做了一个,写的较简单,有一些bug(主 ...

  10. 【npm】详解npm的模块安装机制

      依赖树表面的逻辑结构与依赖树真实的物理结构 依赖树表面的逻辑结构与依赖树真实的物理结构并不一定相同! 这里要先提到两个命令:tree -d(linux)和npm ls(npm) 在一个npm项目下 ...