8. 多态、匿名内部类、权限修饰符、Object类
文章目录
- 一、多态 -- 花木兰替父从军
- 1. 情境
- 2. 小结
- 二、匿名内部类
- 三、权限修饰符
- 四、Object -- 所有类的父类(包括我们自己定义的类)
- 五、内容出处
一、多态 – 花木兰替父从军
1. 情境
我们现在新建两个类HuaMuLan和HuaHu。HuMuLan是HuaHu的女儿,所以她会有她父亲的一些特性。
花木兰要替父从军了。
花木兰现在既是她爹,又是她自己。为什么这么说?因为对外她会打仗,自我介绍时也会说她是HuaHu。但是私底下,她是会化妆的,她爹又不会,她爹只会打仗。
有一天,仗打完了,花木兰遇到自己心爱的人,就要做回自己
快捷键:alt+回车,强制转换即可
重写sayMe()方法
这个时候,花木兰就重新做回了自己。
简而言之,花木兰能替父从军,还能做回自己,这就是多态。
2. 小结
① 多态:多个行为、多种功能(例如:多功能小吃摊,一个车能干多种事情)
② 典型例子:花木兰替父从军;爱情公寓里吕子乔在外面玩的时候从来不说自己是吕子乔,一直说自己是吕小布。
③ 好处:隐藏自己、替父从军
④ 2个要素: 至少要有2个类,且它们之间存在继承关系;存在向上转型(替父从军)、向下转型(做回自己)
⑤ 实际开发过程中,多态也能用到:它可以先使用父亲的东西,时机成熟的时候再切换回来。说白了就是有2个功能。
二、匿名内部类
一般用在接口上
现在有一个HumanAction接口和一个Chinese实现类。
当我们在main函数里new一个接口的时候,会发现它会给我们生成很多东西。
由此可见,Chinese这个实现类完全可以不用写。直接new一个接口就可以了,这就是匿名内部类。
也可以写成下面这样
三、权限修饰符
菜鸟教程
default:
四、Object – 所有类的父类(包括我们自己定义的类)
这个在自带的jar包里可以找到
> 例如:最开始没有在Animal类里使用注解的时候,我们利用快捷键生成toString()方法时会自动带上@Override,就是因为Animal继承了Object,此处的本质是重写了Object里的方法。>
相关博客
五、内容出处
java
相关文章:
8. 多态、匿名内部类、权限修饰符、Object类
文章目录 一、多态 -- 花木兰替父从军1. 情境2. 小结 二、匿名内部类三、权限修饰符四、Object -- 所有类的父类(包括我们自己定义的类)五、内容出处 一、多态 – 花木兰替父从军 1. 情境 我们现在新建两个类HuaMuLan和HuaHu。HuMuLan是HuaHu的女儿,所以她会有她父…...
CentOS/Ubuntu/Debian安装LibeventCentOS安装Libevent库(含示例代码)库(含示例代码)
使用命令:CentOS安装Libevent库(含示例代码) sudo yum install libevent-devel Ubuntu/Debian: sudo apt install libevent-dev 示例代码: #include <stdio.h> #include <stdlib.h> #include <unistd.h> …...
【大数据】数据采集工具sqoop介绍
文章目录 什么是sqoop?一、Sqoop的起源与发展二、Sqoop的主要功能三、Sqoop的工作原理四、Sqoop的使用场景五、Sqoop的优势六、Sqoop的安装与配置 sqoop命令行一、Sqoop简介与架构二、Sqoop特点三、Sqoop常用命令及参数四、使用示例五、注意事项 什么是sqoop? Sqoop是一款开…...
vite学习教程02、vite+vue2配置环境变量
文章目录 前言1、安装依赖2、配置环境变量3、应用环境变量4、运行和构建项目资料获取 前言 博主介绍:✌目前全网粉丝3W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技术内容࿱…...
k8s 的网络通信
目录 1 k8s通信整体架构 2 flannel 网络插件 2.1 flannel 插件组成 2.2 flannel 插件的通信过程 2.3 flannel 支持的后端模式 3 calico 网络插件 3.1 calico 简介 3.2 calico 网络架构 3.3 部署 calico 1 k8s通信整体架构 k8s通过CNI接口接入其他插件来实现网络通讯。目前比较…...
【编程基础知识】掌握Spring MVC:从入门到精通
摘要: 本文将深入探讨Spring MVC框架的核心概念、组件和工作流程。读者将学习如何将Spring MVC应用于现代Web应用程序开发中,并通过实际代码示例和流程图,理解其强大的功能和灵活性。文章最后,我们将通过一个Excel表格总结全文内容…...
多线程下,@Transactional失效解决
一、问题复现 批量插入时,使用多线程对插入数据实现分批插入,在service层使用Transactional注解,对应方法中线程池中开辟的子线程抛出异常时,没有回滚事务。 二、原因分析 事务管理范围不正确:Transactional注解仅对…...
PyCharm 项目解释器切换指南:如何在项目中更换 Python Interpreter
PyCharm 项目解释器切换指南:如何在项目中更换 Python Interpreter 文章目录 PyCharm 项目解释器切换指南:如何在项目中更换 Python Interpreter一 Settings 设置二 Project 选项三 Conda Environment四 更换 Environment 本文详细介绍了在 macOS 系统中…...
STM32F407寄存器操作(DMA+SPI)
1.前言 前面看B站中有些小伙伴吐槽F4的SPIDMA没有硬件可控的CS引脚,那么今天我就来攻破这个问题 我这边暂时没有SPI的从机芯片,并且接收的过程与发送的过程类似,所以这里我就以发送的过程为例了。 2.理论 手册上给出了如下的描述 我们关注…...
Oracle 的 OCP 与 MySQL 的 OCP 的区别
事务开始与提交(以 Java 代码中的事务操作为例) Oracle(在 Java 中使用 JDBC 进行事务操作) import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;public cla…...
数据治理、数据清洗定义、区别以及数据清洗常用方法
一、数据治理定义 数据治理是一种组织数据管理的方法,涉及数据的收集、存储、处理、分析和共享等方面,旨在最大程度地利用数据资产并降低数据相关的风险。 数据治理确保数据的质量、安全性、合规性和可用性,以支持组织的决策和运营活动。…...
web基础-攻防世界
get-post 一、WP (题目本质:get与post传参方法) 用 GET 给后端传参的方法是:在?后跟变量名字,不同的变量之间用&隔开。例如,在 url 后添加/?a1 即可发送 get 请求。 利用 hackbar 进行…...
Java基础-String Class(字符串类)
String Java String 类概览 String 类是 Java 中最常用的类之一,用于处理字符串。以下是 String 类的主要特性和操作: 特性/操作描述不可变性String 对象一旦创建就不能被修改创建方式使用双引号 “” 或 String 构造函数字符串池Java 维护字符串常量池…...
《Linux服务与安全管理》| 服务进程与网络配置
《Linux服务与安全管理》| 服务进程与网络配置 目录 《Linux服务与安全管理》| 服务进程与网络配置 (1) 写出查看NetworkManager服务状态的命令。 (2) 写出查看NetworkManager服务自启动状态的命令。 (3࿰…...
No.15 笔记 | CSRF 跨站请求伪造
目录 一、基础知识 (一)cookie 和 session、同源策略 (二)CSRF 原理 二、CSRF 类型 (一)GET 类型 (二)POST 类型 三、CSRF 实例讲解 (一)真实案例 &am…...
解决linux中pip速度过慢问题
在 Linux 系统下,如果你发现使用 pip 下载 Python 库时速度非常慢,可以考虑以下几种方法来加速下载: 使用 pip 的 -i 选项: 如果你只想临时使用其他镜像,可以在安装时加上 -i 选项: pip install package_n…...
FlinkSQL中 的 双流JOIN
在 Flink SQL 中,流与流的 JOIN 是一种复杂的操作,因为它涉及到实时数据的无界处理。理解 Flink SQL 流与流 JOIN 的底层原理和实现需要从多个角度来分析,包括 状态管理、事件时间处理、窗口机制 以及 内部数据流处理模型 等。下面将从这些角…...
Mysql(五) --- 数据库设计
文章目录 前言1.范式1.1.第一范式1.1.1 定义1.1.2.例子 1.2.第二范式1.2.1 定义1.2.2 例子1.2.3.不满足第二范式可能会出现的问题 1.3.第三范式1.3.1 定义2.3.2 示例 2. 设计过程3. 实体-关系图3.1 E-R图的基本组成3.2 关系的类型3.2.1 一对一关系(1:1)3.2.2 ⼀对多关系(1:N)3.…...
po框架的了解和应用
https://www.cnblogs.com/xiaolehong/p/18458470 笔记 任务:1、通过po框架输入测试报告 2、编写自动化测试框架 3、总结测试讲解稿 自动化测试框架概念: 自动化测试框架是一个集成体系,这个体系中包含测试功能的函数、测试数据源、测试对以及重要的模块。 作用:用于解决或…...
Linux云计算 |【第四阶段】RDBMS2-DAY5
主要内容: PXC概述、部署PXC(自动故障恢复测试)、存储引擎、读锁/写锁、表锁/行锁、常用的存储引擎介绍 一、PXC概述 PXC(Percona XtraDB Cluster,简称PXC集群),是基于Galera的MySQL高可用集群…...
别再只盯着原理图了!FPGA/SoC硬件工程师必看的RGMII接口PCB布线实战指南(含时序约束与等长规则)
RGMII接口PCB设计实战:从时序规范到千兆以太网稳定通信 在FPGA和SoC硬件开发中,RGMII接口设计一直是工程师们又爱又恨的挑战。爱它的简洁高效——相比GMII接口减少了近一半的引脚数量;恨它的时序敏感——一个看似微小的PCB布线失误就可能导致…...
IT6520:USB‑C 转 MIPI 芯片方案 4K@120Hz 高清显示
一、前言平板、便携屏、AR/VR 头显、车载中控、会议终端等设备,对USB‑C 一线通视频输出的需求越来越强。 传统方案必须用:PD 控制器 DP 接收芯片 MIPI 桥接芯片 外置 MCU Flash,多芯片拼凑导致电路复杂、成本高、兼容性差、开发周期长。…...
Cortex-M0中断与系统控制:从NVIC、SysTick到低功耗实战解析
1. 项目概述:从零开始理解Cortex-M0的中断与系统控制如果你正在接触基于ARM Cortex-M0内核的微控制器,比如STM32F0系列、NXP的LPC800系列,或者是一些国产的M0芯片,那么“中断”和“系统控制”这两个词,绝对是你绕不开的…...
不只是F5隐写:一次CTF解题,带你深入理解ZIP伪加密的底层原理与手动修复
深入解析ZIP伪加密:从CTF实战到二进制手动修复 在CTF竞赛中,ZIP伪加密一直是Misc类题目的经典考点。不同于常规的加密破解,伪加密巧妙地利用了ZIP文件格式的设计特性,在不实际加密数据的情况下制造出需要密码的假象。本文将带您深…...
【实战】Latex|在保留ACM-Reference-Format格式的前提下,实现参考文献按引用顺序排列
1. 问题背景与核心痛点 当你使用ACM官方模板撰写论文时,参考文献格式要求必须采用ACM-Reference-Format样式。这个格式有个让人头疼的特性:它会强制按作者姓氏字母顺序排列参考文献,而不是按照文中实际引用顺序。想象一下,你精心设…...
手机号逆向查QQ号:3分钟快速上手完整指南,告别繁琐登录验证!
手机号逆向查QQ号:3分钟快速上手完整指南,告别繁琐登录验证! 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾忘记自己哪个QQ号绑定了某个手机?或者需要批量验证手机号与QQ的关…...
Multi-Agent产品创新:从单一场景到跨域协同的演进
Multi-Agent产品创新:从单一场景到跨域协同的演进 关键词:多智能体系统、产品创新、跨域协同、单一场景智能、Agent协作框架、LLM驱动Agent、分布式智能 摘要:大语言模型的爆发式发展,让智能Agent从实验室走向了大众消费级产品。本文从生活场景的真实痛点切入,逐层拆解Mul…...
别再为交叉项头疼了!手把手教你用MATLAB时频工具箱搞定WVD、PWVD和SPWVD
别再为交叉项头疼了!手把手教你用MATLAB时频工具箱搞定WVD、PWVD和SPWVD 信号处理工程师和研究者们常常面临一个棘手问题:如何从复杂的非平稳信号中提取清晰的时频特征?Wigner-Ville分布(WVD)系列方法作为经典解决方案…...
开启AI端侧能源新纪元 豪鹏科技亮相CIBF 2026
导读:豪鹏科技锚定“AI端侧电池固态电池”双轮驱动核心路径,完成从传统电池制造商到AI端侧能源引领者的跨越式转型,以硬核技术与前瞻布局,领航端侧能源产业迈向高质量发展新征程。以下为文章正文:图片来源于电池百人会…...
ESP32 OTA升级避坑指南:用Python脚本一键搭建本地服务器,告别手动配置
ESP32 OTA升级实战:Python自动化方案与高频问题破解 当你的ESP32设备部署在难以物理接触的场合——比如嵌入墙体的智能开关、高架桥上的环境监测节点,或是旋转机械内部的振动传感器,固件更新就成了开发者的噩梦。传统烧录器方案需要专人携带设…...














> 例如:最开始没有在Animal类里使用注解的时候,我们利用快捷键生成toString()方法时会自动带上@Override,就是因为Animal继承了Object,此处的本质是重写了Object里的方法。>