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!!

最新文章

  1. Ruby On Rails 环境搭建MySQL数据库连接
  2. 四则运算GUI版本功能展现
  3. 软件推荐 - Source Insight
  4. 【Unity3D基础教程】给初学者看的Unity教程(六):理解Unity的新GUI系统(UGUI)
  5. Domain many-to-many
  6. 64位下好神奇啊(增加了PatchGuard技术保护自己,SSDT是相对地址,参数通过寄存器与rdi来传递)
  7. QueryPerformanceFrequency 和 QueryPerformanceCounter用法
  8. PHP 文字,图片水印,缩略图,裁切成小图(大小变小)
  9. 批处理就是windows的杰作啊
  10. spring cloud之坑,访问服务时找不到报404
  11. 谈一谈泛型(Generic)
  12. Node.js 事件循环机制
  13. Py之Crawler:利用python的爬虫功能实现从各种网站上(以百度贴吧为例)获得你喜欢的照片下载到本地电脑上——Jason niu
  14. docker系列(1)- 配置
  15. JS:Math 对象方法
  16. Gym - 101480 CERC 15:部分题目题解(队内第N次训练)
  17. QSetting 说明和简单使用
  18. 【ElasticSearch】:Mapping相关
  19. Codeforces.1027F.Session in BSU(思路 并查集)
  20. IDEA maven项目下测试mybatis例子,使用mappper class或package引入mapper映射文件,总是报错Invalid bound statement(所有配置完全正确)

热门文章

  1. ubuntu16.04 编译安卓4.2
  2. 20155205《Java程序设计》实验五(网络编程与安全)实验报告
  3. c简单的单向链表
  4. 用 gdb 调试 GCC 程序
  5. 最通熟易懂的Hadoop HDFS实践攻略
  6. js-实现搜狐列表
  7. Linux查看History记录加时间戳小技巧
  8. Class AB与Class D功放
  9. 1.Django入门
  10. MariaDB安装、初始化及常用操作