Java 重写(Override)与重载(Overload)

JAVA面向对象-Java 重写(Override)与重载(Overload) Java 重写(Override)与重载(Overload) 阅读详情

Java 重写(Override)与重载(Overload)

重写和重载实现了Java的三大特性(封装,继承,多态)中的多态性

一、重写(Override)

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。
方法重载的规则

接下来拿下面的代码作为例子。
代码中定义了两个类People,Teacher, Teacher继承了People类,重写了People中的work()方法。

	class People{
        public void work(){
            System.out.println("人在工作");
        }
    }

    class Teacher extends  People{
        @Override
        public void work() {
            System.out.println("教师在工作");
        }
        public void teaching(){
            System.out.println("教师在上课");
        }
    }

    @Test
    public void testOverride(){

        People p1=new People();
        People t1=new Teacher();
        p1.work();
        t1.work();
    }

运行结果如下图所示:
在这里插入图片描述
可见,t1执行的是Teacher重写后的代码。

接下来,将测试的代码修改一下,如下图所示:

你会发现t1.teaching();这条语句报错,原因是People类中没有teaching()这个方法,所以报错。
在这里插入图片描述
想要消除这个错误,就需要将t1的引用定义为Teacher类,如下图所示:
在这里插入图片描述
此时,代码不再报错,执行结果如下图所示:
在这里插入图片描述

二、重载

  • 方法重载的规则
  • 重载最常用的地方就是类构造函数的重载
  • 重载的方法中,方法名相同,返回值可相同也可不相同,但参数一定都是不相同的。
1.返回值类型相同,参数不同

这里依然拿上面的People类作例子,此时重载work()方法,如下图所示:
在这里插入图片描述
两个work函数中,依照方法重载的规则,方法名相同,参数不相同,编译通过。

2.返回值类型不相同,参数类型相同

在这里插入图片描述
此时IDE工具提醒 People中已用参数类型为int的work()方法,说明重载的方法中,方法参数列表必须不相同,而方法的返回值的相同与否,并不会影响方法的重载。

Java重写(Override)与重载(Overload)区别原理解析 主要介绍了Java重写(Override)与重载(Overload)区别原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 立即下载

相关推荐

如何使用3D高斯分布进行环境建模

使用3D高斯分布来进行建模,关键在于通过引入不确定性描述来提高建图的鲁棒性和精度。与传统点云表示相比,3D高斯分布提供了一种更为灵活和有效的方式来处理空间数据,能够通过协方差矩阵表示点的空间不确定性,帮助优化SLAM过程中的定位和地图更新。

JaydenQ的博客 2356

[javase学习笔记]-9.2 单继承与多重继承

这一节我们来看java中的单继承和多重继承。 在java语言中,支持的是单继承,不直接支持多继承,可是对C++中的多继承进行了改良。 那么什么是单继承和多继承呢? 单继承:一个子类仅仅能有一个直接父类。 多继承:一个子类能够有多个直接父类。这个在java中是不同意的。 为什么不同意呢?我们看一个样例: class A { void method(...

aodiyi6351的博客 193

1.全基因组重测序数据分析介绍

二代测序原理及fastq数据解读、全基因组重测序数据分析内容

weixin_53682198的博客 1884

C++ 关于override关键字使用详解

因此,只要函数签名相同,派生类的函数就可以覆盖基类的函数,无论这两个函数的实现是否相同。这就是前面所说的,普通虚函数同时继承接口和缺省实现是危险的,最好是基类中实现缺省行为 (behavior),但只有在派生类要求时才提供该缺省行为.一种方法是 纯虚函数 + 缺省实现,因为是纯虚函数,所以只有接口被继承,其缺省的实现不会被继承。这是因为非虚函数是 “静态绑定” 的,p1被声明的是 Person* 类型的指针,则通过 p1调用的非虚函数都是基类中的,既使 指向的是派生类。

nihao_2014的博客 1万+

WinForm制作文件传输助手,Tcp局域网传输文件,传输速度受限于宽带和硬盘速度上限

文件传输助手为什么会出现,是因为项目上有些特殊的地方限制太多了,连插硬盘都需要关软件,联网又要开很不方便,网络限制一般软件只能局域网通信,还要开特定的端口等,你才能在电脑上通信,这样和机房的服务器远程的时候文件就不好拿过去,又不可能每次都去开机房的门。现在这个功能比较简单,只能单文件发送,但是其实比U盘硬盘方便,一般的六类网线传输压缩包在50M/s以上,U盘硬盘复制就不行了,特别如果是像我们学校这种网络结构,一个学校都在一个局域网,那真的方便!普通的局域网用特定IP和端口,通信也是很方便的。

m0_69233031的博客 1672

C++总结笔记

/ ++操作 这是因为定义的数组,申请的是连续的内存空间,当ptr++(ptr是int类型的指针变量),地址空间向后偏移是以int类型的大小为单位进行偏移的,相当于int类型数组元素的向后偏移。使用场景:它是最通用的转换形式,用于将一种类型转换为另一种类型,例如基本数据类型的转换(如 float 转 int),指向基类的指针或引用转为指向派生类的指针或引用等。在派生类被调用时会调用派生类中的函数,不会调用基类中的被重写的函数(基类中的函数需要加上virtual才可以,即基类中的函数是虚函数)。

weixin_50890461的博客 5235

不再混淆!深度解析Java中的重写和重载

重写是指在子类中重新定义父类中的方法。换句话说,当子类继承父类时,可以对父类的方法进行重新实现,从而实现不同的功能。重载是指在同一个类中定义多个方法,这些方法拥有相同的方法名,但参数列表不同(参数个数或类型不同)。重载是编译时的行为,编译器根据方法的签名来决定调用哪个方法。希望通过今天的讲解,大家能更清晰地理解Java中的重写和重载。重写是为了子类能够重新定义父类的方法,实现多态性;而重载则是为了提高方法的灵活性,使同一个方法名可以处理不同类型或数量的参数。

GAL555的博客 1029

逍遥模拟器改真机参数全指南:从ARM伪装到电池传感器模拟

本文提供逍遥模拟器深度伪装实战指南,重点讲解如何通过修改ARM架构、系统属性和模拟传感器数据,使其在硬件信息、电池状态等维度逼近真实设备,有效规避应用检测。文章详细介绍了使用Magisk模块、LSPosed框架进行设备指纹伪装和动态数据模拟的策略,帮助用户实现从静态信息到动态行为的全方位真机模拟。

weixin_29279101的博客 453

JAVA重写Override 与 重载Overload

重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。(即外壳不变,核心重写!) 重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。 例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 E...

weixin_44838394的博客 283

一篇NS SAR ADC的学习记录

一篇NS SAR ADC的学习记录 内容包含: OverSampling Noise Shaping Dynamic Amplifier DAC with Redundancy 最近看了些有意思的SAR ADC结构,但是因为确实对模拟这个领域不太熟,导致了一系列的级联查找,最终达到了一个大概能懂的状态,为了理清思路,顺便别让看了这么些天的东西浪费了,还是计划写篇文章。 ps:由于不是一篇特别正紧的报告,参考文献就写的比较随便,且我还是个做数字的 A 13.5-ENOB, 107-μW Noise-Sha

weixin_45669724的博客 8713

国赛数学建模高教社杯历届优秀论文全集

包含了2004到2023年高教社的赛题及优秀论文。

BanDeng001的博客 3288

Java重写(Override)与重载(Overload)

Java重写(Override)与重载(Overload) 方法的重写规则 参数列表必须完全与被重写方法的相同; 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同); 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为publ...

Youpeng 282

YOLOv11改进 | 引入SFSConv空间频率选择卷积(含SFSC3k2二次创新),空间频率特征协同作用,检测性能全面提升

本文提出在YOLOv11中引入SFSConv空间频率选择卷积模块,通过显式分离和动态融合空间域与频率域特征,解决传统卷积对多尺度目标检测的局限性。SFSConv包含空间频率分离、动态权重融合和协同特征重建三个核心机制,并进一步创新提出SFSC3k2结构,通过双路频率分支增强特征协同作用。该改进显著提升了YOLOv11在遥感、医学等多尺度复杂场景下的检测性能,实验显示在微小目标检测任务中mAP提升5%-10%。代码实现展示了SFSConv模块的核心逻辑及其在PyTorch中的高效实现。

走向CTO的路上... 768

【Java开发指南 | 第二十五篇】Java 重写(Override)与重载(Overload)

重写(Override)是指子类定义了一个与其父类中具有相同名称、参数列表和返回类型的方法,并且子类方法的实现覆盖了父类方法的实现。重写使得子类能够根据需要实现父类的方法,在使用子类对象调用该方法时,将执行子类中的方法而不是父类中的方法。5、重写的方法能够抛出任何非强制异常,但不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常。3、子类中重写的方法的访问权限不能比父类中被重写方法的访问权限更低。1、重写的方法必须具有与被重写方法相同的参数列表。的方法才能被重写,因此要确保被重写的方法不是。

等风来 2375

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: Java equals()和==的区别
下一篇: 浏览器输入URL后发生了什么
M2L
M2L
博客等级 码龄10年 12粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值