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中functools模块函数解析
Mar 12 Python
Python中函数eval和ast.literal_eval的区别详解
Aug 10 Python
Python获取当前函数名称方法实例分享
Jan 18 Python
Python基于递归实现电话号码映射功能示例
Apr 13 Python
Python常见字典内建函数用法示例
May 14 Python
mac下给python3安装requests库和scrapy库的实例
Jun 13 Python
Python3中lambda表达式与函数式编程讲解
Jan 14 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
Python批量处理csv并保存过程解析
May 16 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
python中%格式表达式实例用法
Jun 18 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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
PHP中的插件机制原理和实例
2014/07/08 PHP
PHP中文编码小技巧
2014/12/25 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
jQuery使用post方法提交数据实例
2015/03/25 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
Easyui在treegrid添加控件的实现方法
2017/06/23 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
python 截取 取出一部分的字符串方法
2017/03/01 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
Python if语句知识点用法总结
2018/06/10 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
py-charm延长试用期限实例
2019/12/22 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
几个常见的消息中间件(MOM)
2014/01/08 面试题
职位说明书范文
2014/05/07 职场文书
Python代码实现双链表
2022/05/25 Python