【Java学习】继承

一、继承

  • 子类继承父类,子类这个类变量的引用在原有的指向子类自己类变量空间的原有访问权限上,增加上了父类类变量空间的访问权限,此时子类类变量指向的空间变为了原来子类类变量空间加上父类类变量空间,此时子类类变量空间就变成了两块不同位置空间的合并访问版本,此时用子类类变量创的似复刻变量里的复制变量、路径信息就是照着两个类变量的内容都并上着的创的一个似复刻变量它创的空间就一块里面有两类变量的复制变量、两类变量的路径信息
  • 此时的子类类变量不是原来单单指向它自己那块空间的类变量了,而是变成了指向两类变量空间的类变量,所指向管理的空间是两块空间
  • 用子类类变量创建的似复刻变量的哈希值用子类类变量来接收,也可以用父类类变量来接收,但用父类类变量接收后,父类类变量的解引用只能指向似复刻变量里面有关父类的部分,子类的部分无法访问

(类变量、似复刻变量参考:【Java学习】类和对象-CSDN博客 )


二、this与super

this、super都是在非静态方法它隐藏this形参下有的:

  • 在子类里的this指向的是用两类变量共创的似复刻变量,此似复刻变量里面装的是关于两类变量里创的复制变量、关于两类变量的路径信息,但指向时是优先指向似复刻变量里用原子类创的部分
  • super是this里部分的关键字,是要在子类(即合并体)里面才有的用来特指向子类创的似复刻变量里用父类创的那部分内容的

子类非静态方法中this下可分出this中特指父类的super,而父类非静态方法中只有它自己的this,this分不出super


三、构造方法

构造方法是每个类里必有、似复刻变量创建时必会去执行的,原子类与父类继承合并后的子类的构造方法里,必有super(参)即父类的构造方法确保合并后的子类必有必会去执行它们俩的构造方法不写构造方法的类,Java会对应自动加上默认的无参的构造方法

  • 一个类里面必有构造方法给创建似复刻变量时用,但构造方法里不一定有this(),即在构造方法里不一定有再调用此同一个类里的其它构造方法(构造方法都是与类名同名的(构成方法重载),创建似复刻变量时通过传参选择调用此类里的哪一个构造方法)
  • 一个子类的构造方法中一定有super(参),即在子类的每一个构造方法的最后效果都是一定有super(参)作为构造方法过程中第一条执行的语句,即子类构造方法里一定是有且先调用父类的构造方法的

所以子类在调用构造方法里中的再调用其它构造方法是无法实现的,因为this(参)如果有的话是必须也是在构造方法整个过程中的第一条执行语句,与它必有的super冲突,所以子类的构造方法整个过程的最后效果中,是无法再调用本类中其它的构造方法的,子类的构造方法们只能互独立选择调用

子类创建似复刻变量时首传给的构造方法是在原子类中的,父类的构造方法在创似复刻变量首传时是不能传的


四、访问权限

  • 部类只能由public或不加访问限定符默认的default修饰
  • 内部类、类的成员、类的方法可被所有的访问限定符修饰
  • 方法内部、代码块内部不可以被访问限定符修饰,因为它们的生命周期与访问权限已经定下就是在所在的{}内了,是已经定下的

1.protected修饰的最大的访问权限为不同包下被继承可被访问


2.同类中,处于全局的成员或方法不管用什么访问修饰限定符修饰都是能互访问的


3.子类继承父类之后,父类的成员变量、方法都相当于进了子类{}内,属于子类同类了,子类里可直接使用到


4.静态方法里的静态环境下,不能对需要实例化的非静态方法、成员进行操作


5.非静态方法里调用非静态方法时不需要实例化出对象再解引用对象调用,因为在非静态方法里已经设计成默认已有对象设计环境了


6.final修饰类使类不能作为父类被继承,变成一个密封类;final修饰变量,使变量里的值不能再被修改,相当于使变量变成了常量


7.


五、执行顺序

父类的静态代码块 -> 子类的静态代码块 -> 父类的实例代码块 -> 父类的构造方法 -> 子类的实例代码块 -> 子类的构造方法


六、组合

继承是将类与别的类合并成新的类,组合是类中使用上别的类

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

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

相关文章

ChatGLM

ChatGLM 实现思想模型结构配置迭代版本 ChatGLM-6B : 清华大学的一个开源、支持中英双语的对话语言模型,基于 General Language Model(GLM)架构,具有 62 亿参数 特点 : 优点 : INT4下,只要 6GB 显存 ; ChatGLM2-6B 序…

网页制作02-html,css,javascript初认识のhtml的文字与段落标记

用一首李白的将进酒,对文字与段落标记进行一个简单的介绍演示: 目录 一、标题字 1、标题字标记h 2、标题字对其属性align 二、文本基本标记 1、字体属性face 2、字号属性size 3、颜色属性 Color 三、文本格式化标记 1、粗体标记 b ,strong 2、…

Vue响应式原理实现总结(数据劫持Object.defineProperty/Proxy+发布订阅者设计模式)

Vue的响应式主要分为数据劫持和发布订阅模式。Vue2用的是Object.defineProperty,而Vue3改用Proxy。数据劫持就是在访问或修改对象属性时进行拦截,然后触发相应的更新。发布订阅模式则是用来收集依赖(比如视图更新函数),当数据变化时通知这些依赖执行。 总结一下,关键点包…

Opencv项目实战:26 信用卡号码识别与类型判定

项目介绍 在日常生活中,信用卡的使用越来越普遍。本项目的主要目标是通过图像处理技术自动识别信用卡号码,并根据信用卡号码的第一个数字判定信用卡的类型(如Visa、MasterCard等)。项目结合了图像预处理、轮廓检测、模板匹配等技…

伯克利 CS61A 课堂笔记 10 —— Trees

本系列为加州伯克利大学著名 Python 基础课程 CS61A 的课堂笔记整理,全英文内容,文末附词汇解释。 目录 01 Trees 树 Ⅰ Tree Abstraction Ⅱ Implementing the Tree Abstraction 02 Tree Processing 建树过程 Ⅰ Fibonacci tree Ⅱ Tree Process…

STL —— 洛谷字符串(string库)入门题(蓝桥杯题目训练)(一)

目录 一、B2109 统计数字字符个数 - 洛谷 算法代码: 1. 引入库和命名空间 2. 主函数 3. 读取输入 4. 变量初始化 5. 遍历字符串 6. 输出结果 7. 返回值 总结 评测记录: 二、B2110 找第一个只出现一次的字符 - 洛谷 方法一:算法代…

【数据分析】1 认识数据分析

一、课程核心内容结构 1. 课程定位 商业数据分析导论课:旨在为初学者奠定扎实的基础,介绍数据分析的基本概念、方法和应用场景。后续模块:包括职业发展路径、技能要求等深入内容,帮助学习者规划未来的职业道路。目标群体&#x…

【Prometheus】prometheus结合domain_exporter实现域名监控

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

【分果果——DP(困难)】

题目 分析 分果果题解参考,下面是补充https://blog.csdn.net/AC__dream/article/details/129431299 关于状态 设f[i][j][k]表示第i个人取到的最后一个糖果编号是j,第i-1个人取到的最后一个糖果编号小于等于k时的最大重量的最小值 关于转移方程 关于 j …

大白话实战Sentinel

Sentinel是SpringCloudAlibaba提供的用来做服务保护的框架,而服务保护的常见手段就是限流和熔断降级。在大型分布式系统里面,由于微服务众多,所以服务之间的稳定性需要做特别关注,Sentinel的核心包就提供了从多个维度去保护服务稳定的策略,而且这些保护策略都可以连接上Se…

解锁机器学习核心算法 | 支持向量机:机器学习中的分类利刃

一、引言 在机器学习的庞大算法体系中,有十种算法被广泛认为是最具代表性和实用性的,它们犹如机器学习领域的 “十大神器”,各自发挥着独特的作用。这十大算法包括线性回归、逻辑回归、决策树、随机森林、K - 近邻算法、K - 平均算法、支持向…

vue脚手架开发打地鼠游戏

游戏设计: 规划游戏的核心功能,如场景、随机出现的地鼠、计分系统、游戏时间限制等。简单设计游戏流程,包括开始界面、游戏进行中、关卡设置(如不同关卡地鼠出现数量、游戏时间等)、关卡闯关成功|失败、游戏结束闯关成…

Web 后端 请求与响应

一 请求响应 1. 请求(Request) 客户端向服务器发送的HTTP请求,通常包含以下内容: 请求行:HTTP方法(GET/POST等)、请求的URL、协议版本。 请求头(Headers):…

Linux的基础指令和环境部署,项目部署实战(下)

目录 上一篇:Linxu的基础指令和环境部署,项目部署实战(上)-CSDN博客 1. 搭建Java部署环境 1.1 apt apt常用命令 列出所有的软件包 更新软件包数据库 安装软件包 移除软件包 1.2 JDK 1.2.1. 更新 1.2.2. 安装openjdk&am…

DeepSeek在linux下的安装部署与应用测试

结合上一篇文章,本篇文章主要讲述在Redhat linux环境下如何部署和使用DeepSeek大模型,主要包括ollama的安装配置、大模型的加载和应用测试。关于Open WebUI在docker的安装部署,Open WebUI官网也提供了完整的docker部署说明,大家可…

罗德与施瓦茨ZNB20,矢量网络分析仪9KHz-20GHz

罗德与施瓦茨ZNB20矢量网络分析仪9KHz-20GHz R&SZNB20矢量网络分析仪 产品型号: ZNB20 产品品牌:罗德与施瓦茨 R&S 产品名称: 矢量网络分析仪 频率范围:9kHz - 20GHz R&S ZNB 矢量网络分析仪 良好的测量速度、动态范围和操作方便性&am…

axios post请求 接收sse[eventsource]数据的

axios 接收sse数据的 axios 接收sse数据的 EventSource什么 基于 HTTP 协议实现,通过与服务器建立一个持续连接,实现了服务器向客户端推送事件数据的功能。在客户端,EventSource 对象通过一个 URL 发起与服务器的连接。连接成功后&#xff0…

Python----数据结构(双向链表:节点,是否为空,长度,遍历,添加,删除,查找,循环链表)

一、双向链表 1.1、概念 双向链表是一种链表数据结构,每个节点除了包含指向下一个节点的指针外,还包含指向前一个节点的指针。这种特性使得在双向链表中,可以从任意一个节点开始,向前或向后遍历链表。 1.2、特点 • 既可以从…

VScode内接入deepseek包过程(本地部署版包会)

目录 1. 首先得有vscode软件 2. 在我们的电脑本地已经部署了ollama,我将以qwen作为实验例子 3. 在vscode上的扩展商店下载continue 4. 下载完成后,依次点击添加模型 5. 在这里可以添加,各种各样的模型,选择我们的ollama 6. 选…

投资组合风险管理

投资组合风险管理 市场风险 信用风险流动性风险风险指标收益率波动率最大回撤 α \alpha α(詹森指数), β \beta β卡玛比率月胜率上/下行捕获比夏普比率索提诺比率经风险调整的收益率(𝑀2)特雷诺比率信息…