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 命令行也可以自动补全
Nov 30 Python
Python中正则表达式的详细教程
Apr 30 Python
Django与JS交互的示例代码
Aug 23 Python
深入理解Python中range和xrange的区别
Nov 26 Python
Python基于matplotlib实现绘制三维图形功能示例
Jan 18 Python
用python 批量更改图像尺寸到统一大小的方法
Mar 31 Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 Python
Python之使用adb shell命令启动应用的方法详解
Jan 07 Python
python如何删除文件中重复的字段
Jul 16 Python
python中元组的用法整理
Jun 15 Python
Python pip 常用命令汇总
Oct 19 Python
使用python绘制分组对比柱状图
Apr 21 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面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python批量导出导入MySQL用户的方法
2013/11/15 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
python绘制雪景图
2019/12/16 Python
Python 实现国产SM3加密算法的示例代码
2020/09/21 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
阳光体育活动实施方案
2014/05/25 职场文书
酒店开业策划方案
2014/06/02 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
房屋租赁协议书
2014/10/18 职场文书
村干部任职承诺书
2015/01/21 职场文书
教师聘用意向书
2015/05/11 职场文书
退伍军人感言
2015/08/01 职场文书
中秋节祝酒词
2015/08/12 职场文书
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python