python多态_Python多态
面向对象三大特性
封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中
定义类的准则
继承 实现代码的重用,相同的代码不需要重复的编写
设计类的技巧
子类针对自己特有的需求,编写特定的代码
多态 不同的 子类对象 调用相同的 父类方法,产生不同的执行结果
多态 可以 增加代码的灵活度
以 继承 和 重写父类方法 为前提
是调用方法的技巧,不会影响到类的内部设计
多态案例演练
需求
在 Dog 类中封装方法 game
普通狗只是简单的玩耍
定义 XiaoTianDog 继承自 Dog,并且重写 game 方法
哮天犬需要在天上玩耍
定义 Person 类,并且封装一个 和狗玩 的方法
在方法内部,直接让 狗对象 调用 game 方法
案例小结
Person 类中只需要让 狗对象 调用 game 方法,而不关心具体是 什么狗
game 方法是在 Dog 父类中定义的
在程序执行时,传入不同的 狗对象 实参,就会产生不同的执行效果
多态 更容易编写出出通用的代码,做出通用的编程,以适应需求的不断变化!
class Dog(object):
def __init__(self, name):
self.name = name
def game(self):
print("%s 蹦蹦跳跳的玩耍..." % self.name)
class XiaoTianDog(Dog):
def game(self):
print("%s 飞到天上去玩耍..." % self.name)
class Person(object):
def __init__(self, name):
self.name = name
def game_with_dog(self, dog):
print("%s 和 %s 快乐的玩耍..." % (self.name, dog.name)) # dog是wangcai # wangcai是XiaoTianDog的实例对象 # dog.name是调用父类方法
# 让狗玩耍
dog.game()
# Person 类中只需要让 狗对象 调用 game 方法,而不关心具体是 什么狗
# game 方法是在 Dog 父类中定义的
# 在程序执行时,传入不同的 狗对象 实参,就会产生不同的执行效果
# 1. 创建一个狗对象
# wangcai = Dog("旺财")
wangcai = XiaoTianDog("飞天旺财")
# 2. 创建一个小明对象
xiaoming = Person("小明")
# 3. 让小明调用和狗玩的方法
xiaoming.game_with_dog(wangcai)
# 小明 和 飞天旺财 快乐的玩耍...
# 飞天旺财 飞到天上去玩耍...
python多态_Python多态相关推荐
- python多态_Python 多态与抽象类
一.多态 1.1 什么是多态 多态也称"多态性",指的是同一种类型的事物,不同的形态. 在python中的多态指的是让多种类若具备类似的数据属性与方法属性,都统一好命名规范,这样可 ...
- python多态_python多态和规范
python规范(接口类) 接口类可以规范代码,但接口类本身是不实现的 class Payment: def pay(self,money): raise Notlmplemented class W ...
- python多态_python 多态
第一类多态: from cat import Cat from mouse import Mouse from person import Person ''' 多态:一种事物的多种形态 最终目标:人 ...
- python 多态_Python中的多态
面向对象的语言有四个特性,抽象.封装.继承和多态.在之前的文章中,给小伙伴们已经讲解了前三个.为什么要把多态放在最后一个讲呢?因为前面的三个特性是多态的基础,了解了前三个,了解多态就很容易啦~ 那么, ...
- 浅谈python使用多态跟不用多态的区别_python 多态和 super 用法
python 中的多态实现非常简单,只要是在子类中实现和父类同名的方法,便能实现多态,如果想在子类中调用父类的方法,有多种方法,但是当涉及菱形继承等问题是,super 就成为了比较好的解决方案. 普通 ...
- python中的多态用法_Python面向对象之多态原理与用法案例分析
本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...
- python继承和多态心得_python学习第十五天 -面向对象之继承和多态
大家都知道面向对象的三大特性:封装,继承,多态.封装特性在上一章节已经讲解过.这一章节主要讲解继承和多态. 继承:当定义一个类的时候,可以从现有的类进行继承.那么新定义的类可以称为子类,被继承的现有的 ...
- python封装继承多态_Python:封装、继承、多态、私有成员
Python作为一种面向对象语言,也有着面向对象的三种特性:封装.继承.多态. 封装: 将事物相关的属性和方法封装在某一个类里面,使得在调用类创建实例时,可以不用关心类内部的实现细节. 类的本质: 1 ...
- python中的多态是什么_Python中的多态
python中的多态是什么 Polymorphism is a concept of Object Oriented Programming, which means multiple forms o ...
最新文章
- 高手都这么给 Spring MVC 做单元测试!
- 可搜索本机文档内容软件:anytext(批量检索文档内容)(不是很好用,推荐用filelocator)
- 使用RSA算法生成令牌
- 洛谷 P3391 文艺平衡树
- Eureka实例自动过期
- tomcat下多个app 不同的图标_iOS平台设计规范(五)图标与图片
- php 绘图 jpeg,PHP gd库增加jpeg支持
- mysql查询语句有点难_Mysql惯用函数,难点,注意_mysql
- ngnix集群产生的问题
- java读流方式,下载网络上的图片
- JSK-11 移除数组中的重复元素【入门】
- centos 安装tmux
- 对称加密算法和非对称加密算法的区别
- C语言如何作用于unity,在Unity 3D中使用C进行车轮转向#
- css实现手风琴图片特效
- JetBrain IDEA 文件自动定位到打开文件位置
- 入侵防御系统特征库升级
- 设备扩展(DEVICE_EXTENSION)
- 【源码阅读】SIR-GN: A Fast Structural Iterative Representation Learning Approach For Graph Nodes
- 华为中标广东电信IPTV项目