资讯专栏INFORMATION COLUMN

python多态的个人理解

StonePanda / 586人阅读

摘要:在面向对象方法中一般是这样表述多态性向不同的对象发送同一条消息,不同的对象在接收时会产生不同的行为即方法。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。

多态就是:
定义一个类class X(animal) 中间继承animal 实现的方法是.run() 方法
继承animal的实例是cat dog 他们默认都有run()方法,重不重写都可

现在突然有个类(模块) 是tortoise ,只要继承自 animal,这个类tortoise的实例小tortoise同样可以当参数传进去,因为它继承自tortoise,而tortoise 继承自animal,所以肯定自带run(),无论里面是否重写run()

若一个函数里面传了一个类当参数,那么此类的所有子类实例默认可以完成此函数里面的 类.方法,多态的意义在于不用考虑调用这个函数的对象(或者继承此类的实例对象)有没有实现这个方法

以下为转载:
(1)什么是多态性(注意:多态与多态性是两种概念)

多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息,不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。

(2) 为什么使用多态:
1> 增加了程序的灵活性
  以不变应万变,不论对象千变万化,使用者都是同一种形式去调用,如func(animal)
2> 增加了程序额可扩展性
  通过继承animal类创建了一个新的类,使用者无需更改自己的代码,还是用func(animal)去调用

多态:同一种事物的多种形态,动物分为人类,猪类(在定义角度) 多态性:一种调用方式,不同的执行效果(多态性)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43277.html

相关文章

  • Python OOP 面向对象编程

    摘要:时代,如果需要手动继承,如多态多态是指,不同的子类对象调用相同的父类方法,会产生多态多样结果的编程特性。 参考:黑马程序员教程 - Python基础 面向对象 OOP三大特性,且三个特性是有顺序的: 封装 继承 多态 封装 指的就是把现实世界的事务,封装、抽象成编程里的对象,包括各种属性和方法。这个一般都很简单,不需要多讲。 唯一要注意的就是:推荐从小往大开始封装、开发类。比如手枪...

    weknow619 评论0 收藏0
  • Python学习之路8.1-类

    摘要:被继承的类称为父类基类或超类,新的类称为子类或派生类。但要注意的是,继承关系应只发生在有较强相互关系的类之间,比如从车类派生出电动车类,没有从车类派生出哈士奇这种骚操作。 《Python编程:从入门到实践》笔记。本章主要介绍一种重要的编程思想:面向对象编程,包括了类与对象等概念及操作。 1. 概述 面向对象编程(Object-oriented programming, OOP)是最有效...

    hss01248 评论0 收藏0
  • 编程模型(范式)小结

    摘要:参考链接面向对象编程模型现在的很多编程语言基本都具有面向对象的思想,比如等等,而面向对象的主要思想对象,类,继承,封装,多态比较容易理解,这里就不多多描述了。 前言 在我们的日常日发和学习生活中会常常遇到一些名词,比如 命令式编程模型,声明式编程模型,xxx语言是面向对象的等等,这个编程模型到处可见,但是始终搞不清是什么?什么语言又是什么编程模型,当你新接触一门语言的时候,有些问题是需...

    miya 评论0 收藏0
  • flask 源码解析:简介

    摘要:简介官网上对它的定位是一个微开发框架。另外一个必须理解的概念是,简单来说就是一套和框架应用之间的协议。功能比较丰富,支持解析自动防止攻击继承变量过滤器流程逻辑支持代码逻辑集成等等。那么,从下一篇文章,我们就正式开始源码之旅了 文章属于作者原创,原文发布在个人博客。 flask 简介 Flask 官网上对它的定位是一个微 python web 开发框架。 Flask is a micro...

    megatron 评论0 收藏0

发表评论

0条评论

StonePanda

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<