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中__name__的使用实例
Apr 14 Python
详解Python的collections模块中的deque双端队列结构
Jul 07 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
详解Python使用Plotly绘图工具,绘制甘特图
Apr 02 Python
python 错误处理 assert详解
Apr 20 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 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
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
js报错 Object doesn't support this property or method的原因分析
2011/03/31 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
vue实现购物车案例
2020/05/30 Javascript
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
使用Keras实现简单线性回归模型操作
2020/06/12 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
JDK安装目录下有哪些内容
2014/08/25 面试题
J2EE模式面试题
2016/10/11 面试题
法学专业毕业生自荐信
2014/06/11 职场文书
质量在我心中演讲稿
2014/09/02 职场文书
幼儿教师自我剖析材料
2014/09/29 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书