Java5.--继承-重写-多态

笔记暂未整理:

一、面向对象的第二大特征:继承

1.分类:业务封装 功能封装

2.作用

封装-->属性的安全!
继承-->重用----重用代码(属性+方法)
多态-->扩展

3.实现继承的步骤

①从多个相似的类中,找出相同的属性和方法,提取出来放到一个单独的类里,这个单独的类就叫父类/基类/超类(其他子类共有的属性和方法)。
②多个相似的类中,只保留各自特有的属性和方法,那么这些相似的类就叫子类(自己的属性和方法)
③在子类中,使用extends关键字,继承父类,从而继承父类里的属性和方法。

4.应用继承

extends

5.子类可以继承父类哪些资源

---除了父类的构造方法 不能继承,其他资源都可以继承
---但是继承过来后,还要根据资源的权限修饰符来判断是否可用

二、方法的重写

1.为什么学习方法?

父类里的方法,解决不了子类的问题,所以子类需要重写。

a.重写定义:

子类中,方法名相同,参数列表相同,返回值相同或者缩小,访问修饰符相同或者扩大
子类private方法就会报错
object 所有的最大的基类

b.重载定义:

同一了类中,方法名相同,参数列表不同,与返回值类型和访问修饰符无关的,两个或两个以上的

三、继承的特性

A.单根性:子类只能继承一个父亲
B.传递性:A3----->B2----->C5

8.继承的方式有两种:
A.使用关键字:A extends B
B.隐式继承: A --->继承object类
9.介绍Object类
java中所有类的根基类:
finalize():提醒垃圾回收机制,清除该对象。(不推荐使用)
clone();克隆 (有隐患存在,不推荐使用)
wait() 等待
wait(long timeout,int nanos)等待
wait(long timeout)等待
notify();唤醒-----多线程的时候讲
getClass();------反射的时候讲

toString();
com.jr.demo5.Student 全局限定
4554617c:哈希码()的16进制整数值
哈希码:对象在内存中的地址,经过一个算法,得到的一个数值
equals(Object obj)
+组合使用:
hashCode();获得当前对象的哈希码--
===集合:Set去掉重复元素!
将两个对象的哈希值,如果哈希值不同,可以存储;
到哈希值相同的情况下:
在使用equals方法进行比较,如果还是相同,不存储;
否则存储进去
10介绍super
super:当前父类对象 super.父类属性 super.父类方法 子类构造中,调用父类构造:super();super("111",333);
this.当前对象 this.对象属性 this.对象方法 构造方法互相调用: this();this("111",333);
===super();必须是子类构造方法中的第一行
this();也必须是构造方法中的第一行
===解决方法:互相不见
11.继承情况下,子类构造方法的执行顺序:
Student stu=new Student();
使用子类构造方法创建子类对象的时候,先找到子类的构造方法,
方法中如果开发者手动调用了父类的构造方法,那么程序将先执行父类的构造方法;
如果开发者没有动手调用父类构造方法,那么程序将自动帮忙调用父类的【无参构造方法】,
如果父类也继承了其他类,继续向上,直到找到Object的无参构造方法。在从Object类开始执行,直到当前Student构造方法执行完

Object 先执行Object的构造
A 在执行A的构造
Person 在执行person的构造
Student 在执行Student的构造 new Student()
12.多态:【只关注行为,不关注属性】
什么是多态?(1)同一个父类的不同子类对象,在进行同一行为的时候,有不同的表现形态,就是多态
(2)"动态绑定":编译期,以父类对象做参考,调用方法;
但是,实际运行的时候,以真正传入的实际参数,来调用对应的方法
===从而达到程序扩展性

实现多态的条件:1.继承2.重写 3.声明父类new子类 Person stu =new Student();
使用多态的场景:
1)例题中、程序中一定有两条业务线:一条是继承线由父子类组成的
一条是关联线,两条线有业务关联,第二天业务线中,父类做参数了;父类做返回值类型了。
好处是什么:提高代码的扩展性,可维护性?
应用多态:
动物园,饲养员喂养动物,猫狗猴子



































 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenShift 4 - 云原生备份容灾 - Velero 和 OADP 基础篇

《OpenShift 4.x HOL教程汇总》 说明: 本文主要说明能够云原生备份容灾的开源项目 Velero 及其红帽扩展项目 OADP 的概念和架构篇。操作篇见《OpenShift 4 - 使用 OADP 对容器应用进行备份和恢复(附视频) 》 Velero 和 OADP 包含的功能和模…

精品!“缠论分笔预测”,缠论分笔波段空间预测指标!

精品!“缠论分笔预测”,缠论分笔波段空间预测指标! 使用技巧该指标属于缠论相关指标,可结合缠论使用。使用缠论分笔方法来确定波段的高低点,相比使用“ZIG”算法,似乎更为准确。它能有效减少某些股票高点和…

大模型生图安全疫苗注入赛题解析(DataWhale组队学习)

引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月实践赛的大模型生图安全疫苗注入赛道;本文主要整理本次赛事的基本流程和优化方法。💕💕😊 一…

Unity 山水树木

本章节内容 1. Unity对3D游戏物体的简单操作; 2. 构建山水树木的场景 1. Unity 简易操作 1.1 新建3D游戏场景 1. 打开Unity Hub,点击 New Project (新建项目)按键,选择第二项 3D(Built-In Render Pipeline)&#xf…

harmonyOS next之实现时间打卡定时器

需求:实现一个时间打卡签到按钮。 实现方法:每隔一秒钟获取一下当前时间。 实现代码如下: Column(){Text(this.curTime).fontColor(#FFFFFF).fontWeight(600).fontSize(32vp)Text(上班打卡).fontColor(#FFFFFF) } .width(170vp) .height(170…

【 香格里拉酒店-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …

[0633].第3-3节:@SentinueResource注解

我的后端学习大纲 SpringCloud学习大纲 是什么: SentinueResource是一个流量防卫防护组件注解 用于指定防护资源,,对配置的资源进行流量控制、熔断降级等功能 SentinueResource注解说明: Target({ElementType.METHOD, ElementTy…

选择合适的SSL证书

随着我们在线业务的增长,确保网站安全变得越来越重要。对于许多人来说,保护网站安全的想法似乎令人望而生畏,尤其是在有各种SSL证书可用的情况下。您可能想知道哪一个最适合您的业务需求或如何浏览这些选项。 除了SSL证书之外,使…

SQL Injection | SQL 注入 —— 时间盲注

关注这个漏洞的其他相关笔记:SQL 注入漏洞 - 学习手册-CSDN博客 0x01:时间盲注 —— 理论篇 时间盲注(Time-Based Blind SQL Injection)是一种常见的 SQL 注入技术,适用于那些页面不会返回错误信息,只会回…

appium启动hbuild打包的apk异常解决

目录 一、错误信息 二、问题解决 2.1 通过以下命令获取安装包名称: 2.2 这个launcher状态下的安装包名称和active,替换原先的安装包名称 一、错误信息 通过adb shell dumpsys activity | findstr "mResume" 命令获取的安装包信息&#xff…

第十四届单片机嵌入式蓝桥杯

一、CubeMx配置 (1)LED配置 (1)LED灯里面用到了SN74HC573ADWR锁存器,这个锁存器有一个LE引脚,这个是我们芯片的锁存引脚(使能引脚),由PD2这个端口来控制的 (2&#xff…

【前端】如何制作自己的网站(7)

以下内容接上文。 结合图片的超链接 将img元素作为内容,放在a元素中。即可为图片添加一个超链接。 例如右边的代码,点击头像就会打开“aboutme.html“。 点击右边的图片试试~ 两个非文本元素——图片与超链接。 从现在开始&#xff0…

API项目3:API签名认证

问题引入 我们为开发者提供了接口,却对调用者一无所知 假设我们的服务器只能允许 100 个人同时调用接口。如果有攻击者疯狂地请求这个接口,那是很危险的。一方面这可能会损害安全性,另一方面耗尽服务器性能,影响正常用户的使用。…

Golang | Leetcode Golang题解之第492题构造矩形

题目: 题解: func constructRectangle(area int) []int {w : int(math.Sqrt(float64(area)))for area%w > 0 {w--}return []int{area / w, w} }

DeBiFormer:带有可变形代理双层路由注意力的视觉Transformer

https://arxiv.org/pdf/2410.08582v1 摘要 带有各种注意力模块的视觉Transformer在视觉任务上已表现出卓越的性能。虽然使用稀疏自适应注意力(如在DAT中)在图像分类任务中取得了显著成果,但在对语义分割任务进行微调时,由可变形…

【论文精读】RELIEF: Reinforcement Learning Empowered Graph Feature Prompt Tuning

RELIEF: Reinforcement Learning Empowered Graph Feature Prompt Tuning 前言AbstractMotivationSolutionRELIEFIncorporating Feature Prompts as MDPAction SpaceState TransitionReward Function Policy Network ArchitectureDiscrete ActorContinuous ActorCritic Overall…

Firefox火狐浏览器打开B站视频时默认静音

文章目录 环境问题解决办法 环境 Windows 11家庭版Firefox浏览器 131.0.2 (64 位) 问题 用Firefox浏览器打开B站的视频时,默认是静音播放的: 而其它浏览器,比如Chrome和Edge,默认是带声音播放的。 虽然不是什么大问题&#xf…

二叉树与堆讲解

目录 1.树的概念及结构 1.树的概念 2.树的相关概念 3.树的表示 2.二叉树 1.概念 2.特殊的二叉树 1.满二叉树 2.完全二叉树 3.二叉树的性质 4.二叉树的存储结构 1.顺序结构 2.链式存储 3.堆 1.堆的概念及结构 2.堆的实现 1.堆的创建 2.堆的初始化(H…

Javascript算法——双指针法移除元素、数组去重、比较含退格字符、有序数组平方

数组移除元素(保证数组仍连续) 暴力求解法(两层for循环),length单词拼写错误❌二次嵌套for的length设置 /*** param {number[]} nums* param {number} val* return {number}*/ var removeElement function(nums, val) {let leng…

三、账号密码存储

使用Playfers存储 Unity本地持久化类Playerprefs使用详解 - PlaneZhong - 博客园 (cnblogs.com) 一、登陆界面切换 1、登陆界面的脚本(机制类脚本) 在这个UI上挂载一个脚本LoginWnd 先声明一下这个脚本,拖拽 2、在登录模块中调用 这里的l…