Python面向对象程序设计多继承和多态用法示例


Posted in Python onApril 08, 2019

本文实例讲述了Python面向对象程序设计多继承和多态用法。分享给大家供大家参考,具体如下:

多继承

就是一个子类继承多个父类:

Python面向对象程序设计多继承和多态用法示例

多继承的例子,如下:

# -*- coding:utf-8 -*-
#! python3
class Base(object):
  def test(self):
    print("------base")
class A(Base):
  def test1(self):
    print("-----test1")
class B(Base):
  def test2(self):
    print("----test2")
class C(A,B):
  pass
c=C()
c.test1()
c.test2()
c.test()

运行结果:

-----test1
----test2
------base

Python面向对象程序设计多继承和多态用法示例

C也能继承Base

注:多继承中,每个父类都有相同的方法,子类继承时,会有一个继承顺序

想要查看该顺序的调用流程可以使用以下方法:

最后调用的是object方法,如果object方法也不存在,说明类中没有这个方法

print(子类类名.__mro__)
# -*- coding:utf-8 -*-
#! python3
class Base(object):
  def test(self):
    print("-----Base")
class A(Base):
  def test(self):
    print("----A")
class B(Base):
  def test(self):
    print("----B")
class C(A,B):
  def test(self):
    print("-----C")
c=C()
c.test()

运行结果:

-----C

多态

什么是多态:

定义时的类型和运行时的类型不一样,也就是定义时并不确定要调用的是哪个方法,只有运行的时候才能确定调用的是哪个

# -*- coding:utf-8 -*-
#! python3
class Dog(object):
  def print_self(self):
    print("父类")
class Xiaotq(Dog):
  def print_self(self):
    print("子类")
def introduce(temp):
  temp.print_self()
dog1=Dog()
dog2=Xiaotq()
introduce(dog1)
introduce(dog2)

运行结果:

父类
子类

temp就是对象的引用,它和对象指向同一块空间

多态的作用:

在游戏中有多种类型的角色,要在玩家开始玩的时候才能选择,所以开始并不知道玩家选的什么角色,这就是多态

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python基础教程之Hello World!
Aug 29 Python
跟老齐学Python之折腾一下目录
Oct 24 Python
在Python的Django框架中编写编译函数
Jul 20 Python
Python之web模板应用
Dec 26 Python
python+opencv实现动态物体追踪
Jan 09 Python
Python2包含中文报错的解决方法
Jul 09 Python
浅谈利用numpy对矩阵进行归一化处理的方法
Jul 11 Python
关于python多重赋值的小问题
Apr 17 Python
python模块和包的应用BASE_PATH使用解析
Dec 14 Python
django的模型类管理器——数据库操作的封装详解
Apr 01 Python
python实现扫雷小游戏
Apr 24 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
python仿抖音表白神器
Apr 08 #Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 #Python
分析经典Python开发工程师面试题
Apr 08 #Python
django celery redis使用具体实践
Apr 08 #Python
python制作抖音代码舞
Apr 07 #Python
python实现抖音点赞功能
Apr 07 #Python
将pip源更换到国内镜像的详细步骤
Apr 07 #Python
You might like
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
document.documentElement && document.documentElement.scrollTop
2007/12/01 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
layUI实现列表查询功能
2019/07/27 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
Python中使用不同编码读写txt文件详解
2015/05/28 Python
Python实现截屏的函数
2015/07/25 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
Python随机函数random()使用方法小结
2018/04/29 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
"引用"与多态的关系
2013/02/01 面试题
总经理驾驶员岗位职责
2013/12/04 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
个人安全生产责任书
2014/07/28 职场文书
农业项目建议书
2014/08/25 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
2015年话务员工作总结
2015/04/29 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书