Java核心技术卷I -- 第5章 继承

1. 调用和子类同名的父类方法 super.getSalary(); 

2. 多态

2.1. 子类对象赋值给父类对象: Employee e = new Manager(...);

2.2. 重载(overloading): x.f(String)和x.f(int)

2.3. 阻止继承: final类和final方法

final类不能被继承,final方法不能被覆盖,final类中所有的方法为final方法,final域构造之后值不能被修改。

3. 强制转换

Manager boss = (Manager)staff[0];  在父类转换成子类之前,需要使用instanceof进行检查

转换之前进行检查: if (staff[i] instanceof Manager) {boss = (Manager)staff[i];} 

4. 抽象类

抽象类可以有具体数据和具体方法,接口仅仅只有方法定义,没有实现。抽象类不能被实例化。

final方法和类: 阻止继承。

5. 访问限制

public: 对所有类都可见

private: 仅对本类可见

protected: 对本包和所有子类可见

默认: 对本包可见

6. Object: 所有类的超类

6.1. equals方法 - 在Object中用于判断两个对象是否具有相同的引用,以下是复写Object的equals方法

public boolean equals(Obejct otherObject) {

if (this == otherObject) return true;  //检测this与otherObject是否引用同一个对象

if (otherObject == null) return false;  //检测otherObject是否为null

if (getClass() != otherObject.getClass) return false;  //比较this与otherObject是否属于同一类

Employee other = (Employee)otherObject;  //将otherObject转换为相应的类型

return name.equals(other.name) && salary == other.salary ;  //对所有域进行比较

}

6.2. hashCode方法 - equals与hashCode的定义必须一致,如果x.equals(y)返回true,那么x.hashCode就必须与y.hashCode()具有相同的值

6.2.1. String类计算散列码

int hash = 0;

for (int i=0; i<length(); i++)

hash = 31 * hash + charAt(i);

6.2.2. Employee的hashcode方法

public int hashCode() {

return 7 * name.hashCode() + 11 * new Double(salary).hashCode() + 13 * hireDay.hashCode();

}

6.3. toString方法

public String toString() {

return getClass().getName() + "[name=" + name + ",salary=" + salary + ",hireDay=" + hireDay + "]";

} 

7. 泛型数组

7.1. 操作方法

ArrayList<Employee> staff = new ArrayList<Employee>();  //声明

staff.add(new Employee("Harry Hacker",...));  //在数组列表尾端添加一个元素

staff.ensureCapacity(100);  //填充数据之前确定元素容量

ArrayList<Employee> staff = new ArrayList<Employee>(100);  //初始容量传递给ArrayList 

int size()  //返回存储在数组列表中的当前元素数量(这个值可能小于或等于数组列表的容量)

void trimToSize()  //将数组列表的存储容量消减为当前尺寸

7.2. 访问数组列表元素

staff.set(i, harry);    等价于    a[i]=harry;    //对元素赋值

Employee e = staff.get(i);    等价于   Employee e = a[i];    //获取元素

for(Employee e : staff);    等价于   for(int i=0; i<staff.size(); i++) {Employee e = (Employee)staff.get(i)}    //对数组列表循环

add(int index, T obj)  //向后移动元素,插入新元素

remove(int index)  //删除一个元素

8. 对象包装器和自动打包

譬如Integer类对象基本类型int

ArrayList<Integer> list = new ArrayList<Integer>();

list.add(3);    将自动变成    list.add(new Integer(3));    //自动打包

int n = list.get(i);    将自动变成    int n = list.get(i).inValue();    //自动拆包

Integer.toString(int i);  //int转换成String    Integer.parseInt(String s);  //String转换成int

Integer.valueOf(String s);  //String转换为Integer    Integer.intValue();  //Integer转换为int

Public static double max(double... values){} //double... values 表示可以接收多个参数,如同double[] values. 

9. 反射

9.1. 基本方法

Class cl = e.getClass();   或者   Class cl = Class.forName(clsssName);  //获得class类型

if (e.getClass() == Employee.class)  //比较两个类是否相等

e.getClass().newInstance();  //创建一个类的实例

9.2. 获取属性方法

9.2.1. java.lang.Class

Field[] getDeclaredFields()  //返回包含Field对象的数组,这些对象记录了该类的全部域。

Field[] getDeclaredMethods()  //返回该类或接口的全部方法,不包括由超类继承的方法。

Field[] getDeclaredConstructors()  //返回所有构造器。

9.2.2. java.lang.reflect.Field    java.lang.reflect.Method    java.lang.reflect.Constructor

Class getDeclaringClass()  //返回一个用于描述类中定义的构造器、方法或域的Class对象

Class[] getExceptionTypes()  //返回一个用于描述方法抛出的一场类型的Class对象数组

int getModifiers()  //返回一个用于描述构造器、方法或域的修饰符的整型数值

Class[] getParameterTypes()  //返回一个用于描述参数类型的Class对象数组

Class getReturnType()  //返回一个用于描述返回类型的Class对象

9.2.3. 设置访问授权 AccessibleObject.setAccessible(fields, true);

10. 枚举值Enum

比较枚举的值时,直接使用“==”,不用equals

Enum valueOf(Class enumClass, Sting name)  //返回给定名字、给定类的枚举常量

String toString()  //返回枚举常量名

UE5.4像素流送实战:GPU驱动、WebRTC与系统级调优全解析 像素流送是将实时3D渲染画面通过WebRTC编码推流至浏览器的关键技术,其本质是GPU硬件编码(如NVENC)与低延迟网络传输(UDP+BBR)的深度协同。理解其原理需跨越图形API(Vulkan/DX12)、实时音视频(H.264/H.265)、WebRTC信令与NAT穿透四大技术层。技术价值在于突破终端算力限制,支撑远程工业仿真、云VR看房等高交互场景;但落地难点集中于基础设施层——如NVIDIA驱动与UE5.4.3的CUDA Toolkit 12.2兼容性、Linux内核TCP/UDP参数调优、GPU 阅读详情

相关推荐

【ELF2学习板】基于OpenMP与RK3588多核架构优化FFTW的并行计算效率

本文详细介绍了如何在ELF2学习板上利用OpenMP与RK3588多核架构优化FFTW的并行计算效率。通过编译支持OpenMP的FFTW库、合理设置线程绑定与调度策略,以及内存访问优化等技巧,显著提升了FFT计算的性能。实测数据显示,多核并行优化可使4096点FFT计算速度提升一倍以上,特别适合信号处理、图像分析等高性能计算场景。

weixin_30352645的博客 604

学习笔记之《Java核心技术卷I》---- 第五章 继承

Java中所有继承都是公有继承 this是当前对象的引用,而super不是一个对象的引用,不能将super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字 /* 以下代码可以成功编译运行 */ class Employee{ private String name; public Employee(String name) { this.name = name; } ...

smart_ferry的博客 273

银河麒麟V10离线升级OpenSSH实战:从编译到回滚全流程

OpenSSH作为Linux系统远程登录的核心组件,其版本升级直接关系到系统安全与等保合规。在信创环境下,银河麒麟V10自带的OpenSSH版本往往无法满足漏洞扫描与安全加固要求,而离线编译升级涉及依赖处理、编译参数、服务替换与回滚方案等多个技术环节。本文围绕银河麒麟V10(x86_64)平台,详细讲解OpenSSH离线升级的完整实操流程,包括环境摸底、依赖包安装、源码编译、配置文件兼容性处理、服务重启验证以及常见问题排查,并分享批量升级与安全加固的工程经验,帮助运维人员在不断网、不重装的前提下一次成功完成

weixin_30582943的博客 384

Java基础之继承和多态

继承是什么?多态是什么?动态绑定是什么?

清梦的博客 310

在 Windows 系统下使用 VMware 安装 Ubuntu 24.04 LTS 系统

Ubuntu24.04桌面端官方下载:https://cn.ubuntu.com/download/desktop。

u014695938的博客 1万+

RustFS vs MinIO:深入对比分布式存储的性能、功能与选型指南

RustFS与MinIO是两款热门分布式存储系统,分别针对高性能与通用场景设计。RustFS基于Rust语言,在吞吐量(最高提升46%)、延迟(降低37%)和资源效率(内存占用减少67%)上显著优于MinIO,适合AI训练、金融级应用等高性能需求。MinIO凭借成熟的S3兼容性、云原生集成和企业级功能,更适用于混合云及现有S3生态。许可方面,RustFS采用Apache 2.0,MinIO为AGPLv3。选型建议:优先RustFS应对性能敏感场景,选择MinIO注重生态兼容性,也可考虑混合架构策略。

分布式存储与RustFS的博客 2022

《Java核心技术 卷I》第5章 继承

已存在的类称为超类(superclass)、基类(baseclass)、父类(parent),新类称为子类、派生类、孩子类。超类和子类时Java程序员最常用的术语,集合关系就是超集和子集。} }上面代码栈会溢出,需要将double baseSalary = getSalary();改为double baseSalary = super.getSalary();记住两点一个对象变量可以指示多种实际类型的现象被称为多态(polymorphism)。

输入知识,消化知识,输出知识,分享知识,教人让我学习更好,业精于勤荒于嬉,行成于思毁于随 1209

用MFRC522+STM32打造智能门禁:从硬件选型到云端控制全流程

本文详细介绍了基于STM32微控制器和MFRC522射频模块构建智能门禁系统的完整流程。从硬件选型、电路设计、底层驱动开发,到系统软件架构与状态机设计,并最终实现通过ESP8266模块接入云端平台(如OneNET)进行远程控制和数据可视化。项目深入探讨了MFRC522的SPI通信、卡片操作流程、天线调试以及云端MQTT集成等关键技术,为嵌入式开发者提供了一个从本地感知到云端管控的物联网项目实战参考。

raspberrypi5的博客 741

《Java核心技术卷I》——第5章 继承

《Java核心技术卷I》——第5章 继承 在C++中,没有提供用于表示抽象类的特殊关键字。只要有一个纯虚函数,这个类就是抽象类。 hashCode()方法是定义在Object类中,因此每个对象都有一个默认的散列码,其值为对象的存储地址。 绝大多数的toStrin...

weixin_30763397的博客 175

SAP STO流程实战:如何配置外向交货单PGI后自动生成内向交货单(附避坑指南)

本文详细解析了SAP STO流程中,如何配置实现外向交货单发货过账(PGI)后自动生成内向交货单。通过分步指南,重点阐述了SPED输出类型、输出条件记录、收货点及确认控制码等关键配置,并提供了针对“No goods receipt possible”等常见错误的避坑指南,助力实现跨公司物料转移流程的自动化与高效衔接。

weixin_28327051的博客 395

【图像增强(Image Enhancement )】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、关于答疑、文章目录、与我联系等(持续更新中...)

专栏内涉及的算法都是基于深度学习的图像增强算法;收录的文章基本上是基于Pytorch框架实现的,部分基于Tensorflow;预计完成100篇论文,并持续更新;专栏内文章主要为两部分:【论文精读】与【论文复现】论文精读:读懂论文,总结提炼,聚焦核心内容,不只是全文翻译论文复现:跑通流程,源码解析,提升代码能力,得到去噪结果以及指标计算综合而言,从大到小拆解模型结构,从小到大实现模型搭建。实现论文与源码的统一,深入理解论文行文逻辑与代码实现逻辑,融汇贯通二者思想,并学以致用。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 4052

读《Java核心技术 卷I》有感之第5章 继承

写在前面:最近拘泥于研究生公司这边的一些收尾工作,以及相关的论文工作。说实话,感觉没啥效率,因为说穿了就是来回在一些无所谓的事情中做来做去。你说它重要吧,它确实重要;你说它有趣吧,它确实是相当无聊。总结来说,编码水平和理论基础水平不是一回事,我很喜欢看许多理论基础相关的书籍和描述,但是似乎对实际编码过程感觉没有那么有趣。哎,想想以后的搬砖生活,不得不反思自己所做事情的关键所在,以及如何让自己在多...

方寸间沧海桑田的博客 393

双馈风机并网系统宽频振荡机理与抑制方法研究

双馈风机并网系统宽频振荡分析与抑制 摘要:本文研究了双馈风机(DFIG)接入弱电网引发的宽频振荡问题。通过建立DFIG并网系统阻抗模型,分析了锁相环带宽、电流环带宽等参数对阻抗特性的影响。研究揭示了DFIG与电网阻抗交互导致交截频率处相位差超过180°的振荡机理。提出基于锁相环优化的阻抗重塑抑制策略,采用电压补偿和陷波器改善系统稳定性。仿真结果表明,该方法能有效降低相位差约10°-168°,显著抑制宽频振荡。代码实现了阻抗建模、稳定性分析和抑制策略验证,为工程应用提供了理论依据。

huanghm88的专栏 319

Java 核心技术 卷I 基础知识 第5章 继承

5.1 类、超类和子类 5.1.1 定义子类 5.1.2 覆盖方法 5.1.3 子类构造器 package inheritance; import java.time.*; public class Employee { private String name; private double salary; private LocalDate hireDay; ...

dldldl1994的博客 220

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JAVA核心技术卷I学习笔记-第5章:继承

类、超类和子类 在java中,所有的继承都是公有继承。 关键字extends表明正在构造的新类派生于一个已存在的类。已存在的类成为超类、基类或父类,新类称为子类、派生类或孩子类。 ...

xiaoziyin的专栏 198

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JAVA2核心技术卷I:基础知识(原书第7版) -- 第5章. 继承

1. 调用和子类同名的父类方法 super.getSalary(); 2. 多态    2.1 子类对象赋值给父类对象: Employee e = new Manager(...);    2.2 重载(overloading): x.f(String)和x.f(int)    2.3 阻止继承: final类和final方法。final类不能被继承,final方法不能被覆盖,fi

overkill的专栏 582

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

继承的设计技巧 《Java核心技术 卷 I》

本文摘自《Java核心技术 卷 I》第5章继承 继承设计技巧1.将公共操作和字段放在超类中2.不要使用受保护的字段3.使用继承实现“is-a”关系4.除非所有继承的方法都有意义,否则不要使用继承5.再覆盖方法时,不要改变预期的行为6.使用多态,而不要使用类型信息7.不要滥用反射 1.将公共操作和字段放在超类中 2.不要使用受保护的字段 有些程序员认为,将大多数的实例字段定义为protected是一个不错的注意,“以防万一”,这样子类就能够在需要的时候访问这些字段。然而,protected机制并不能够带来.

博主是个二次元死肥宅~ 202

【社区图书馆】读《Java核心技术 卷I》有感

近期二刷了《Java核心技术 卷I》,于是写个二刷读后感分享给入门Java的小伙伴,辅助学习。

**My Coding Family** 1056

从《Java核心技术》纵览Java全貌

目录一、Java核心技术二、全面清晰三、深入透彻四、轻松上手五、全书共12章第1章概述Java语言的特色功能第2章详细论述如何下载和安装JDK以及本书的程序示例第3章开始讨论Java 语言,包括变量、循环和简单的函数第4章介绍面向对象两大基石中极要的一个概念——封装,以及Java语言实现封装的机制,即类与方法第5章介绍面向对象的另一个重要概念——继承,继承使程序员可以使用现有的类,并根据需要进行修改第6章展示如何使用Java的接口(可帮助你充分获得Java的完全面向对象程序设计能力)、lambda表达式(用

学Java,找哪吒 1万+

java核心技术卷I(第十版)个人笔记

java核心技术卷I(第十版)个人笔记 本人有c++功底,故只记录与c++不同的一些方法。本书为java核心技术卷I(第十版)。第1,2章环境等及10-12章图形化界面部分不提。 章节第三章 java的基本程序结构设计第四章 对象和类 第三章 java的基本程序结构设计 3.2注释 稍有不同,文档注释以/**开头,*/结尾。 3.3数据类型 char型需注意Unicode字符,\u开头,注释中主意C:\users也会产生语法错误,因为\u后需跟4个16位整数。 boolean型和整型无法转换。 3

长门yuki 735

Java核心技术·卷I(原书第12版)

他是《Java核心技术》两卷本的作者,也是《重要的,第二版》(Addison-Wesley,2018)的Core Java SE 9和《重要的,第二版》(Addison-Wesley,2017)的作者。读者应在充分理解Java语言和Java类库的基础上,灵活应用Java提供的高级特性,包括面向对象编程、反射和代理、接口和内部类、异常处理、泛型编程、集合框架、事件监听器模型、图形用户界面设计和并发。☉第四章介绍了面向对象的两大基石——封装的重要概念,以及Java语言实现封装的机制——类和方法;

jascl的博客 1万+

Java核心技术卷I第一章

JAVA在设计时,非常强调进行早期的问题检查,后期动态的(运行时)检测,以及消除容易出错的情况,Java采用的指针模型可以消除重写内存和损坏数据的可能性。与c++相比,在继承方面上,一个类只能继承一个类(单继承机制),而可以通过接口来实现c++的中多继承现象 ,可以提供更加丰富的自省功能。编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译过后的代码可以在多种处理器上运行。基于c++,没有头文件,指针运算,结构,联合,操作符重载,联合等等。

2403_82385265的博客 878

《Java核心技术 卷I》第4章 对象与类

开始学习如何设计主力类(workhorse class)。这些类没有main方法,却又自己的实例域和实例方法。要想创建一个完整的程序,其中只有一个类main方法。

输入知识,消化知识,输出知识,分享知识,教人让我学习更好,业精于勤荒于嬉,行成于思毁于随 1505

赠送大家最喜欢的Java书籍,《Java核心技术.卷I 和 卷II》

文末送书福利,记得看完~导读:学习Java的经典名著非常多,这本书是你一定不能错过的:由凯.霍斯特曼写的《Core Java》,中文版名为《Java核心技术》。这本书几乎出现在每个“学Ja...

程序IT圈 1779

2025/03/23 ​《Java核心技术·卷I(原书第11版)》Java核心技术·卷II(原书第11版):高级特性》凯·S.霍斯特曼(Cay S. Horstmann)书籍阅读

2025/03/23 ​《Java核心技术·卷I(原书第11版)》Java核心技术·卷II(原书第11版):高级特性》凯·S.霍斯特曼(Cay S. Horstmann)书籍阅读

weixin_45428910的博客 1549
上一篇: Java核心技术卷I -- 第4章 对象与类
下一篇: Java核心技术卷I -- 第6章 接口和内部类
book_overkill
博客等级 码龄20年 1粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值