Java基础—面向对象OOP—18三大特性:封装、继承与多态

由于本身理解还不是很到位,所以写的很绕,后续待补充优化

   1、封装(底层):该露的露,该藏的藏

  • 高内聚:类的内部数据操作细节自己完成,不允许外部干涉
  • 低耦合:仅暴露少量的方法给外部使用
  • 属性私有private,get/set
  • IDEA快捷键:alt+insert 快速插入getter、setter,同构造器
  • 一个不明白的点(不清楚是否重要,也不清楚答案是什么,后续待补充:private、public和static的区别--看下面的图
  • 私有的东西无法被继承

2、继承(宏观):扩展extends,是类和类之间的一种关系,还有依赖、组合、聚合

  • 在Java中所有类,都默认直接或间接继承Object类后续待补充
  • IDEA快捷键:光标在类中,点击ctrl+H ,查看继承关系
  • Java只有单继承,没有多继承:一个儿子只能有一个爸爸,一个爸爸可以有多个儿子
  • 私有的东西无法被继承

  •  super与this关键字 看着懵的话,之后应用了回头再看再补充,无需一直纠结(后续待补充)
  • IDEA的使用tip:可以新建file写笔记的

3、方法重写

为什么需要重写?因为父类的功能,子类不一定需要,或者不一定满足

IDEA快捷键:alt + insert 

关于重写:前提是需要有继承关系,子类重写父类的方法

1、方法名、参数列表必须相同

2、修饰符,范围可以扩大但不能缩小:public>protected>default>private

3、抛出的异常:范围可以缩小但不能扩大:如ClassNotFoundException(小) -->Exception(大)

重写是方法的重写,与属性无瓜

重写只与 非静态方法有关,与静态方法无瓜(比较下面两张图)

结论:(可以看蓝色o小圆点)

如果是静态方法:方法的调用仅与方法的左边有关,也就是定义的类型

如果是非静态方法:重写

换种好理解的说法:

有static时,fangfang调用Person类的方法,因为fangfang是用Person类定义的

没有static时,fangfang调用的是对象的方法,fangfang是用Student类new出来的(父类的引用指向了子类)

4、多态

  1. 自己理解:不管什么类型,左边决定有什么方法,右边决定用哪个构造器来初始化
  2. 多态的概念,可以理解为:方法的调用除了本类对象可以调用自己以外,在方法重写里还可以通过父类对象的引用来调用自己
  3. 注意事项:
  4. 是方法的多态,属性没有多态
  5. 父类和子类有联系 类型转换异常 ClassCastException
  6. 存在条件:继承关系,方法需要重写,父类引用指向子类对象
  7. 实现动态编译:类型:可扩展性
  8. 弹幕中说:编译看左边,运行看右边
  9. 对象能执行能执行哪些方法,主要看对象左边的类型,和右边关系不大
  10. 一个对象 实际类型是确定的,可以指向的引用类型就不确定了
  11. Student 能调用的方法都是自己的或者继承父类的
  12. Person类 父类型,可以指向子类,但是不能调用子类独有的方法

5、多态—instanceof 、引用类型的转换

instanceof:判断一个对象时什么类型是否存在父子关系

引用类型的转换:跟基础类型一样

高---低,需要强制类型转换

子类转换为父类,向上转型,可能丢失自己本来的一些方法,直接转换

抽象:封装、继承、多态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/354916.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机二级C语言的注意事项及相应真题-6-程序填空

目录 51.将参数num按升序插入到数组xx中52.在数组中找出两科成绩之和最高的学生并返回其在数组中的下标53.删除所有串长超过k的字符串,输出剩下的字符串54.根据所给的一组学生的成绩,计算出平均成绩,并计算低于平均成绩的学生的平均成绩55.将…

Python算法题集_找到字符串中所有字母异位词

本文为Python算法题集之一的代码示例 题目438:找到字符串中所有字母异位词 说明:给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字…

【c++】高精度算法(洛谷刷题2024)玩具谜题详解(含图解)

系列文章目录 第三题:玩具谜题 视频讲解:http://【洛谷题单 - 算法 - 高精度】https://www.bilibili.com/video/BV1Ym4y1s7BD?vd_source66a11ab493493f42b08b31246a932bbb 文章目录 目录 系列文章目录 文章目录 前言 一、题目分析以及思考 二、代码…

查询redis路径,清除redis缓存

查询redis路径 1、执行ps -ef | grep redis 命令,结果如下(记住PID) 2、执行ps -u 系统用户名,进一步确定进程id, 我这里的系统用户名是root,执行ps -u root,结果如下: 结合1的操作结果图可知…

SERVLET生命周期API

SERVLET生命周期API 在servlet的生命周期中,将发生创建Servlet上下文、创建会话、向Servlet上下文添加属性等各种事件。在servlet的生命周期内发生事件时,Web容器将通知侦听器类。要接收事件的通知,侦听器类需要扩展Servlet API的侦听器接口。 1. 事件类型 servlet生命周期…

关于如何利用ChatGPT提高编程效率的

自从去年ChatGPT3.5推出以后,这一年时间在编程过程中我也在慢慢熟悉人工智能的使用,目前来看即使是免费的ChatGPT3.5对于编程效率的提升也是有很大帮助的,虽然在使用过程中确实出现了一些问题,本文记录下我的一些心得体会和用法。…

Peter算法小课堂—二叉堆(优先队列)

课前小视频:(7 封私信 / 62 条消息) 看动画,学算法,C实现建立二叉堆,优先队列和堆排序的基础 - 知乎 (zhihu.com) 二叉堆(优先队列) 大家想想,什么数据结构能做到插入(删除&#x…

IDEA 构建开发环境

本博客主要讲解了如何创建一个Maven构建Java项目。(本文是创建一个用Maven构建项目的方式,所以需要对Maven有一定的了解) IDEA 构建开发环境 一、创建一个空工程二、构建一个普通的Maven模块 一、创建一个空工程 创建一个空的工程 * 设置整…

声音模拟训练

环境配置 参考文章: https://github.com/SUC-DriverOld/so-vits-svc-Chinese-Detaild-Documents 1:打开CMD nvidia-smi.exe 查询显卡 cuda VERSION:12.3 2:打开https://pytorch.org/get-started 我的系统是12.3 3:使用google 搜索 nvidia develope…

哈希概念 | 哈希函数 | 哈希冲突 | 哈希桶实现 | 哈希线性探测代码实现 | 闭散列 | 开散列 | 字符串哈希算法

文章目录 1.哈希概念2.哈希冲突3.解决哈希冲突3.1.闭散列3.2.开散列 4.字符串哈希算法 1.哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。如果一个顺序结构&am…

80.网游逆向分析与插件开发-背包的获取-自动化助手显示物品数据1

内容参考于:易道云信息技术研究院VIP课 上一个内容:升级Notice类获得背包基址-CSDN博客 码云地址(ui显示角色数据 分支):https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号:3be017de38c50653b…

BGP:04 fake-as

使用 fake-as 可以将本地真实的 AS 编号隐藏,其他 AS 内的对等体在指定本端对等体所在的AS 编号时,应该设置成这个伪AS 编号。 这是实验拓扑,IBGP EBGP 邻居都使用物理接口来建立 基本配置: R1: sys sysname R1 int loo0 ip add…

面了快手电商数据分析师岗(实习),被问的汗流浃背。。。。

最近技术群的一位同学,分享了他面试快手数据分析师岗(实习)的经验。我看了一下面试题,说实话内容不难,他直言没有认真准备。 今天整理后分享给大家,如果你对这块面试感兴趣,可以文末加入我们的面试、技术群 内容 1&…

时序预测 | Python基于Multihead-Attention-TCN-LSTM的时间序列预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 时序预测 | Python基于Multihead-Attention-TCN-LSTM的时间序列预测 Multihead-Attention-TCN-LSTM(多头注意力-TCN-LSTM)是一种结合了多个注意力机制、时序卷积网络(TCN&#xff0…

解决方案|构建生物医学科技桥梁:镭速客户案例分享

随着生物科技在医学领域的快速发展,数据传输在实现医疗创新和科学研究中的重要性变得日益突出。数据不仅庞大,而且高度敏感,传统的数据传输方式已经无法满足医学行业对高效、快速的数据交流需求。 如今市场上备受关注的解决方案是基于UDP传输…

计算机毕业设计 基于SpringBoot的校园闲置物品交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【gmsh源码阅读】OCC对象绑定tag及获取几何与网格映射关系

一、Tag是什么? gmsh中的几何模型相对于OCC的模型增加了id编号,也叫tag,在gmsh中可以显示出来。在gmsh中,点、线、面、体都有Tag,以方便对其查找定位查找。在OCC中TopoDS_Shape只有几何与拓扑结构,没有唯一…

数据中心代理IP:最优性价比业务应用指南

数据中心代理IP在应对高速高并发的业务时,以独特的高速传输,游刃有余地应对多任务处理,适合于特定业务场景的高效加速。理性选用数据中心代理IP,可以为业务将迎来更加稳健和迅速的发展。今天,我们将揭示数据中心代理IP…

【Linux】分区向左扩容的方法

文章目录 为什么是向左扩容操作前的备份方法:启动盘试用Ubuntu后进行操作 为什么是向左扩容 Linux向右扩容非常简单,无论是系统自带的disks工具还是apt安装的gparted工具,都有图像化的界面可以操作。但是,都不支持向左扩容。笔者…

MC3172 串口模块

MC3172 支持12个串口对应关系如下 串口模块初始化 第一个是uart0~11 inpin RX 脚 管脚号 outpin TX脚 管脚号 baud 波特率 read_ptr ,数据读取指针 void uart_init(u32 uart_num,u8 in_pin,u8 out_pin,u32 baud,u8* read_ptr) {INTDEV_SET_CLK_RST(uart_num,(INTDEV_RUN|…