python 继承 多态
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 继承 多态的更多相关文章
- python面向对象之继承/多态/封装
老师说,按继承/多态/封装这个顺序来讲. 子类使用父类的方法: #!/usr/bin/env python # coding:utf-8 class Vehicle: def __init__(sel ...
- Python设计模式 - 基础 - 封装 & 继承 & 多态
面向对象的核心是对象,世间万物都可以看作对象,任何一个对象都可以通过一系列属性和行为来描述,可以包含任意数量和类型的数据或操作.类是用来描述具有相同属性和方法的所有对象的集合.类通常是抽象化的概念,而 ...
- python oop常用术语 继承 多态 封装
面向对象优点 1.通过封装明确了内外 2.通过继承+多态在语言层面支持了归一化设计 抽象/实现 抽象指对现实世界问题和实体的本质表现,行为和特征建模,建立一个相关的子集,可以用于 绘程序结构,从而实现 ...
- python的继承多态以及异常处理
1.单继承 # 动物类 class Animal(object): def __init__(self, name): self. __name = name def run(self): print ...
- python继承,判断类型,多态
1.python中继承 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: class Person(object): def __init_ ...
- Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态)
Python 入门 之 面向对象的三大特性(封装 / 继承 / 多态) 1.面向对象的三大特性: (1)继承 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可以 ...
- python面向对象(封装,继承,多态)
python面向对象(封装,继承,多态) 学习完本篇,你将会深入掌握 如何封装一个优雅的借口 python是如何实现继承 python的多态 封装 含义: 1.把对象的属性和方法结合成一个独立的单位, ...
- python基础——多态与多态性
python基础--多态与多态性 1 多态 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承) 1. 序列类型有多种形态:字符串,列表,元组. 2. 动物有多种形态:人, ...
- python之多态
python之多态 一.什么是多态? 同一种事物,有多种形态! class Animal: #同一类事物:动物 def talk(self): pass class Cat(Animal): #动物的 ...
随机推荐
- es6函数的新语法
函数的默认值 function(x,y=10){ //赋予了y就有了默认值为10,如果y赋值了,就回被覆盖,否则就是默认值10 变量已经有默认值了,所以不用再次用let或者const声明啦 }
- 开源C++版本CGI库CGICC入门
原发布在ChinaUnix,但未自动搬迁过来:http://blog.chinaunix.net/uid-20682147-id-4895772.html PDF版本:https://files-cd ...
- Unicode 字符
Unicode是计算机可以支持这个星球上多种语言的秘密武器.在Unicode之前,用的都是ASCII. ASCII码非常简单,每个英文都是7位二进制的方式存贮在计算机内,其范围是32~126.当用户在 ...
- Mac-控制台更新svn版本
brew install subversion 直接安装svbversion至最新版本
- noip第7课资料
- HDU1853 Cyclic Tour
Cyclic Tour Time Limi ...
- windows 10 下配置安装node.js
环境配置 node.js windows10 25.5k 次阅读 · 读完需要 6 分钟 5 在去年就自己配置安装过node.js,但是使用npm安装模块时安装成功后调用require('mo ...
- cxgrid动态生成footersummary 并获得值
cxgrid动态生成footersummary 并获得值 var f: TcxGridDBTableSummaryItem; cx_for_mctv.OptionsView.Footer := t ...
- Delphi 与 Word_VBA
'插入表格Sub setTable() Set myRange = ActiveDocument.Range(Start:=2, End:=2) ActiveDocument.Tables.Add ...
- poj 2262 Goldbach's Conjecture
素数判定...很简单= =.....只是因为训练题有,所以顺便更~ #include<cstdio> #include<memory.h> #define maxn 50000 ...