【python面向对象】304-面向对象三大特性-3.多态

news/2024/12/18 16:25:47/

三种特性:

  • 封装性
    • 私有属性和私有方法
    • 把属性和方法隐藏起来,属性没有特殊要求都用私有属性
    • 意义
      • 以面向对象的编程思想进行项目开发
      • 封装数据属性:明确的区分内外,控制外部对隐藏的属性的操作行为(保护数据、过滤掉异常数据)
  • 继承性
    • 单继承和多继承
  • 多态性

属性和方法的封装

3、多态

什么是多态(定义)

定义:多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果
①多态依赖继承
②子类方法必须要重写父类方法

好处:调用灵活,有了多态,更容易编写出通用的代码,做出通用的编程,以适应需求的不断变化!

示例代码:

python">'''
首先定义一个父类,其可能拥有多个子类对象。当我们调用一个公共方法(接口)时,传递的对象不同,则返回的结果不同。
'''
class Fruit(object):def makejuice(self):print('i can make juice')class Apple(Fruit):# 重写父类方法def makejuice(self):print('i can make apple juice')class Banana(Fruit):# 重写父类方法def makejuice(self):print('i can make banana juice')class Orange(Fruit):# 重写父类方法def makejuice(self):print('i can make orange juice')# 定义一个公共接口(专门用于实现榨汁操作)
def service(obj):# obj要求是一个实例化对象,可以传入苹果对象/香蕉对象obj.makejuice()# 调用公共方法
service(Orange())

[!NOTE] python中多台的具体案例
+ 多态体现

+加号只有一个,但是不同的对象调用+方法,其返回结果不同。

如果加号的两边都是数值类型的数据,则加号代表运算符

如果加号的两边传入的是字符串类型的数据,则加号代表合并操作,返回合并后的字符串

‘a’ + ‘b’ = ‘ab’

如果加号的两边出入序列类型的数据,则加号代表合并操作,返回合并后的序列

[1, 2, 3] + [4, 5, 6] = [1, 2, 3, 4, 5, 6]


http://www.ppmy.cn/news/1556157.html

相关文章

泷羽Sec学习笔记-zmap搭建炮台

zmap搭建炮台 zmap扫描环境:kali-linux 先更新软件库 sudo apt update 下载zmap sudo apt install zmap 开始扫描(需要root权限) sudo zmap -p 80 -o raw_ips.txt 代码解析: sudo:以超级用户(管理员)权限运行…

Zookeeper其二,zk的java和选举机制,Hadoop的高可用和联邦机制

目录 一、Zk是用java代码进行操作(了解) 使用java代码操作zk 3.5以下版本,使用的技术还是Curator 二、zk的选举机制 三、Hadoop集群的高可用(HA) 1) 搭建namenode的高可用 Java 代码操作 HA 的 hdfs 代…

dolphinscheduler服务RPC框架源码解析(五)RPC提供者服务调用真实方法实现

RPC服务提供者的设计实现 1.概述2.RPC提供者服务调用真实方法设计3.RPC服务提供者调用真实方法实现3.1.工程结构3.1.RPC提供者服务调用真实方法入口类JdkDynamicServerHandler3.2. ServerMethodInvokerImpl类反射方法调用4.总结1.概述 上一篇文章我们已经看过了RPC提供者服务的…

MybatisPlus--mybatis升级版

一、快速入门 1.引入MybatisPlus的起步依赖 mybatisPlus官方提供了starter。其中集成了Mybatis和MybatisPlus的所有功能,对mybatis实现了润物无声,并且实现了自动装配效果。 因此使用了Mybatis的项目,也可以使用MybatisPlus的starter代替M…

我们来对接蓝凌OA --报文格式

题记 数智化办公专家、国家高新技术企业、知识管理国家标准制定者、信创供应商10强…等等,这些和咱们有关系吗!!不好意思,走错片场了,刚和项目经理在甲方那边吹牛B想想刚刚的大饼,看看支付宝余额&#xff…

Greenhills Lib操作-查看Lib信息与将lib中的data段link到指定区域

文章目录 前言Greenhillls中gsize的用法修改ld文件将lib中的data段指定区域示例定义与链接总结 前言 项目开发过程中,遇到客户开发ASW,提供Lib进行集成,但ASW中的标定量没有定义对应的data段,导致无法将标定量指定到特定的内存。…

数据结构之栈和队列算法题

一&#xff1a;有效括号数 学了栈之后这一题就比较简单了。 思路&#xff1a;1、左括号进栈 2、右括号出栈匹配。 完整代码&#xff1a; 因为使用C语言写的&#xff0c;所以里面包含了栈的实现 #include<stdio.h> #include<stdlib.h> #include<assert.h>…

C语言基础-字符数组与字符串

字符数组 概念 元素类型为char字符型的数组&#xff0c;字符数组往往是用来存储字符串数据的。C语言中&#xff0c;字符是字节字符。 字节字符&#xff1a;一个字符占一个字节&#xff0c;在C语言中&#xff0c;使用char表示字节 char a A; char b 1; char c 65; //以上…