Java进阶学习笔记8——单继承、Object类、方法重写

Java 是单继承的,Java中的类不支持多继承,但是支持多层继承。

Object类是所有类的父类。

Java不支持多类继承:

Java支持多层继承:

反证法:

Object类:

Object类是java所有类的祖宗类,我们写的任意一个类,其实都是Object类的子类或子孙类。

A是Object的子类。

B类继承了A类,B跟Object类的子孙类。B跟Object类也是脱不了关系的。

Object类是任何类的祖宗类。我们创建的任何类都是直接或者间接Object类。

那么,我们可以调Object类里的方法的。

方法重写:

当子类觉得父类中的某个方法不好用,或者无法满足自己的需求的时候,子类可以重写一个方法名称、参数列表一样的方法,去覆盖父类的这个方法,这个就称为方法重写。

注意:

重写后,方法的方法,Java会遵循就近原则。

A类:

package cn.ensource.d12_extends_override;public class A {public void print1() {System.out.println("1111");}public void print2(int a, int b) {System.out.println("2222");}
}

B类:

package cn.ensource.d12_extends_override;public class B extends A{// 方法重写public void print1() {System.out.println("6666");}public void print2(int a, int b) {System.out.println("9999");}
}

Test类:

package cn.ensource.d12_extends_override;public class Test {public static void main(String[] args) {// 目标:认识方法重写,掌握方法重写的应用场景B b = new B();b.print1();b.print2(1, 2);}
}

1)

 加注解更安全,可读性也比较好,明了知道这是一个Override,方法重写。

2)修饰符要大于等于,如果小于就报错。

3)返回值类型必须一样,或者范围更小。

4)私有方法和静态方法不能被重写。

我们实际开发中都是:申明不变、重新实现。

方法重写在开发中的常见应用场景:

子类重写Object类的toString方法,以便返回对象的内容。

Student类会继承Object类的toString方法的。

 小细节:我们打印对象的时候,默认是调用toString方法的。

在Student类中重写toString方法。

返回结果是:

返回结果就是Student 对象的内容了。有个就近原则。

我们再看这个:

 运行结果:

说明:ArrayList类中把toString类进行了重写。

我们学着去查找是怎么重写的,我们看到ArrayList是继承了AbstractList(抽象类),父类又去集成AbstractCollection类,在这个抽象集合类中有重写toString方法。

这段代码的意思还是好懂的,Iterator是一个迭代器。

StringBuilder:字符串构造器

小技巧:

自动生成:

方法重写的概念:

子类写了一个方法名称,形参列表与父类某个方法一样的方法,去覆盖父类的该方法。

申明不变,重新实现。

Override的注解:
用来检测当前的方法,是否是重写的方法,起到校验的作用。
方法重写的注意事项:
私有方法不能被重写(父类私有成员子类是不能继承的)
子类方法访问权限不能更低(public->默认->私有)

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

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

相关文章

AI爆文写作:我一般不告诉别人的爆文玩法:如何100%抄袭10W+的爆文标题,让你也篇篇爆款

有现成的10w摆在眼前我们要做的就是,100%抄标题,以及内容重述。 具体操作步骤: 找到适合自己账号选题的10w(微信看一看或者头条)100%抄爆文的标题将这篇文章喂给Al,让AI分析文章的写法和主题根据提炼出来的写法和主题&#xff0…

使用鱼香肉丝一键安装重新安装ROS后mavros节点报错,.so文件不匹配

解决方案: 1、写在mavros相关软件,共卸载7个包 sudo apt-get remove ros-melodic-mav*2、重新安装mavros,共安装10个包 sudo apt-get remove ros-melodic-mav*

每日AIGC最新进展(10):符号音乐生成SYMPLEX、新型图像编辑数据集ReasonPix2Pix、角色一致性插画生成、高级的风格个性化扩散模型

Diffusion Models专栏文章汇总:入门与实战 SYMPLEX: Controllable Symbolic Music Generation using Simplex Diffusion with Vocabulary Priors http://arxiv.org/abs/2405.12666v1 本文介绍了一种新的符号音乐生成方法,名为SYMPLEX,它基于…

pod 库发布脚本

repo_tag.sh 文件 #!/bin/zsh# 私有库名称 #PODNAME${PWD##*/} PODNAME"LBHorizontalCenterLayout"function obtain_git_tag {# 类似 "s.version 0.0.1"VERSION_STRINGgrep -E s.version.* ${PODNAME}.podspecTAGtr -cd "[0-9.]" <<&…

使用 JavaParser 解析代码

[自用] 如何判断出 java 代码文本中一个方法的输入参数个数以及类型。用结构体数组存储遍历信息&#xff0c;最后用一个方法实现打印。可以使用第三方库。 如果是一个语句如何判断这个语句中的局部变量个数和类型。那么该怎么实现呢&#xff1f; 要判断 Java 代码文本中一个方…

【电源专题】什么是层间短路(Rare Short),如何检测?

层间短路发生的原因 一般线圈类制品是以漆包线缠绕导磁材料制造而成,漆包线是指外层披覆一层薄薄绝缘漆的铜线。我们常见的线圈类制品有: 电源变压器、 高压变压器、 Switching Power 变压器、 通讯变压器、 脉冲变压器、 环型变压器、 电力传输变压器、 音频传输变压器、 电…

k8s pvc pending waiting for first consumer to be created before binding

动态创建PV失败且提示waiting for first consumer to be created before binding 问题现象 使用WaitForFirstConsumer的StorageClass创建PV失败&#xff0c;PVC Event提示persistentvolume-controller waiting for first consumer to be created before binding。 问题原因 PV…

c# mysql 加锁解锁

c# mysql 加锁解锁 在C#中操作MySQL实现加锁和解锁&#xff0c;通常是通过执行特定的SQL语句来完成。MySQL支持表级锁定和行级锁定。以下是使用MySQL命令执行加锁和解锁的示例代码&#xff1a; using MySql.Data.MySqlClient;// 连接字符串 string connStr "serverloca…

【QGIS入门实战精品教程】5.3:CGCS2000转Lambert投影

参考阅读: 【GlobalMapper精品教程】081:WGS84/CGCS2000转Lambert投影 文章目录 一、加载实验数据二、投影转换三、批量投影转换一、加载实验数据 加载配套实验数据,如下图所示:图层为长沙市范围、长沙市酒店宾馆分布点位、湖南省酒店分布点位矢量数据。 双击图层,打开信…

网段与广播域

ip地址与子网掩码做与运算得到网络号&#xff0c;得到的网络号相同就是同一个网段&#xff0c;否则不是&#xff0c;跟他们在什么位置没有任何关系 这里面pc3和前两个pc虽然不在同一个网段&#xff0c;但是pc1发广播包的时候&#xff0c;pc3也能收到&#xff0c;因为路由器的所…

Vue 安装vue

1、官网安装下载安装nodejs 2、安装完成后&#xff0c;通过命令查看版本,可以查看到版本 node -v npm -v 3、安装Vue CLi npm install -g vue/cli 4、创建项目,vue create test 如果遇到报错&#xff1a; ERROR Error: spawn yarn ENOENT Error: spawn yarn ENOENT at ChildP…

前端基础入门三大核心之HTML篇:深入理解重绘与重排 —— 概念、区别与实战演练

前端基础入门三大核心之HTML篇&#xff1a;深入理解重绘与重排 —— 概念、区别与实战演练 HTML渲染基础回顾重绘与重排的概念重绘&#xff08;Repaint&#xff09;重排&#xff08;Reflow&#xff09; 区别与影响实战示例&#xff1a;优化策略与代码演示示例1&#xff1a;避免…

Dilworth 定理

这是一个关于偏序集的定理&#xff0c;事实上它也可以扩展到图论&#xff0c;dp等中&#xff0c;是一个很有意思的东西 偏序集 偏序集是由集合 S S S以及其上的一个偏序关系 R R R定义的&#xff0c;记为 ( S , R ) (S,R) (S,R) 偏序关系&#xff1a; 对于一个二元关系 R ⊂…

用 vue3 + phaser 实现经典小游戏:飞机大战

本文字数&#xff1a;7539字 预计阅读时间&#xff1a;30分钟 01 前言 说起小游戏&#xff0c;最经典的莫过于飞机大战了&#xff0c;相信很多同学都玩过。今天我们也来试试开发个有趣的小游戏吧&#xff01;我们将从零开始&#xff0c;看看怎样一步步实现一个H5版的飞机大战&a…

C# 串口通讯之艰难排错之路 —— system.ObjectDisposedException已关闭 Safe handle

今天写了一个串口通讯扫码枪驱动&#xff0c;程序运行后&#xff0c;不出意外的全线崩溃&#xff0c;开始了漫长的排查之旅&#xff0c;具体情况报错如下&#xff1a; 解决未处理 System.ObjectDisposedException Message已关闭 Safe handle Sourcemscorlib ObjectName"&…

【pyspark速成专家】4_Spark之RDD编程2

目录 四&#xff0c;常用PairRDD的转换操作 五&#xff0c;缓存操作 四&#xff0c;常用PairRDD的转换操作 PairRDD指的是数据为长度为2的tuple类似(k,v)结构的数据类型的RDD,其每个数据的第一个元素被当做key&#xff0c;第二个元素被当做value. reduceByKey #reduceByKey…

层次式架构设计理论与实践

层次式体系结构概述 软件体系结构为软件系统提供了结构、行为和属性的高级抽象&#xff0c;由构成系统的元素描述这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。 层次式体系结构的每一层最多只影响两层&#xff0c;同时只要给相邻层提供相同的接口&#xff…

禁用win10自动更新

services.msc——Windows Update——常规——启动类型——禁用 services.msc——Windows Update——恢复——三个无操作&#xff0c;9999天。 gpedit.msc——计算机配置——管理模板——Windows组件——Windows更新——配置自动更新——已启用——2-通知下载和自动更新 Windows…

如何参与github开源项目并提交PR

&#x1f47d;System.out.println(“&#x1f44b;&#x1f3fc;嗨&#xff0c;大家好&#xff0c;我是代码不会敲的小符&#xff0c;目前工作于上海某电商服务公司…”); &#x1f4da;System.out.println(“&#x1f388;如果文章中有错误的地方&#xff0c;恳请大家指正&…

高速公路定向广播(声光一体) HT-600D

1、产品概述&#xff1a; HT-600D声光一体平面波IP定向广播是北京恒星科通创新性研发产品&#xff0c;采用公司自主研发的平面波传声技术&#xff0c;该产品具有高声压、强指向性、高清晰度等特点&#xff0c;采用定向声传声技术将声音聚集到正前方定向传输,周边声压级明显降低…