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 相关文章推荐
Python3字符串学习教程
Aug 20 Python
详解python之配置日志的几种方式
May 22 Python
python计算两个地址之间的距离方法
Jun 09 Python
Python从单元素字典中获取key和value的实例
Dec 31 Python
python数据挖掘需要学的内容
Jun 23 Python
django之静态文件 django 2.0 在网页中显示图片的例子
Jul 28 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 Python
python新式类和经典类的区别实例分析
Mar 23 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
Jun 03 Python
python 负数取模运算实例
Jun 03 Python
python如何使用代码运行助手
Jul 03 Python
django使用graphql的实例
Sep 02 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高手?学会“懒惰”的编程
2006/12/05 PHP
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
php多文件上传实现代码
2014/02/20 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
详解vue中axios请求的封装
2019/04/08 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
python重试装饰器示例
2014/02/11 Python
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
python里对list中的整数求平均并排序
2014/09/12 Python
python实现简单爬虫功能的示例
2016/10/24 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
Python流程控制 if else实现解析
2019/09/02 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
医药类个人求职的自我评价
2014/02/12 职场文书
施工员岗位职责
2014/03/16 职场文书
幼儿园新年寄语
2014/04/03 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
农民工讨薪标语
2014/06/26 职场文书
个人合伙协议书范本
2014/10/14 职场文书
晚会开幕词
2015/01/28 职场文书
离婚起诉状范本
2015/05/19 职场文书
网络研修心得体会
2016/01/08 职场文书