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 相关文章推荐
使用70行Python代码实现一个递归下降解析器的教程
Apr 17 Python
详解Python import方法引入模块的实例
Aug 02 Python
python读取与写入csv格式文件的示例代码
Dec 16 Python
Python中装饰器高级用法详解
Dec 25 Python
Python生成任意范围任意精度的随机数方法
Apr 09 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
Python爬虫之正则表达式的使用教程详解
Oct 25 Python
python遍历小写英文字母的方法
Jan 02 Python
PyQt5固定窗口大小的方法
Jun 18 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
Jul 05 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
python调用百度AI接口实现人流量统计
Feb 03 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
php中禁止单个IP与ip段访问的代码小结
2012/07/04 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
JavaScript 事件记录使用说明
2009/10/20 Javascript
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
Python实现识别手写数字大纲
2018/01/29 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
Django进阶之CSRF的解决
2018/08/01 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
Oracle快照(snapshot)
2015/03/13 面试题
如何转换一个字符串到enum值
2014/04/12 面试题
遗嘱公证书标准样本
2014/04/08 职场文书
小学生倡议书范文
2014/05/13 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
法律意见书范文
2015/05/20 职场文书
机器人瓦力观后感
2015/06/12 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
详解MongoDB的条件查询和排序
2021/06/23 MongoDB