Java中方法的重载(overload)与重写/覆写(override)

方法重写(override)与方法重载(overload) 一.方法重写(override)​1.重写的概念那么为什么会需要重写呢?补充:@Override​2.遵循规则​3.注意事项4.重写的好处 ​二.方法重载(overload)​​1.重载的概念​2.重载的好处 ​三.传说秘技​ (方法重写有三同!) 方法重写就是发生在子父类之间,子类出现了和父类一模一样的一个方法,就会发生方法覆盖现象!子类方法会覆盖父类方法.所以且方法重写也可以叫方法覆盖.也就是说子类父类中的方法具有相同的方法名,相同的参数列表,相同的返回结果类型. 那么为什么会需要重写呢? 当子类 阅读详情

重载-Overload

函数的方法参数个数或类型不一致,称为方法的重载。
从含义上说,只要求参数的个数或参数的类型不一致就说两个函数是重载函数,而至于返回值是否一样,没关系。同时,重载可以发生在同一个类中也可以发生在继承关系中。
构成方法重载的3个条件:1.参数类型不同;2.参数顺序不同;3.参数个数不同。
方法重载中可以使方法的返回值不同,但返回类型的不同不足以区分两个方法的重载。
举个例子:

class A {
}

class B extends A {
    public void fun(String data1) {
        System.out.println(data1);
    }
    public String fun(String data1, String data2) {
        System.out.println(data1 + "-->" + data2);
        return "";
    }
}

上面的代码说明了在同一个类中的方法重载。此外,如果我们把第一个函数移到A类中,也构成了重载关系。

class A {
    public void fun(String data1) {
        System.out.println(data1);
    }
}

class B extends A {
    public String fun(String data1, String data2) {
        System.out.println(data1 + "-->" + data2);
        return "";
    }
}

重写-Override

重写也被称为覆写。对一个方法的重写必须发生在具有继承关系的两个类中,即子类对父类方法的重写。它要求两个方法的参数个数和类型以及返回值类型都必须一致,这样才称为方法重写。

class A {
    public void fun(String data) {
        System.out.println(data);
    }
}

class B extends A {
    public void fun(String data) {
        System.out.println("XXXX" + data);
    }
}

上面代码演示了子类对父类方法的覆写。可以看到两个函数的参数个数和类型以及返回值都是一致的。

同时子类对父类的方法覆写对权限有要求,子类方法的访问权限必须大于或等于父类方法的访问权限。也就是说如果父类方法的访问权限是default,那么子类必须是default或者public,如果父类方法是public访问权限,那么子类就只能是public访问权限了。然而,实际开发中,绝大多数的方法都是public访问权限,所以覆写方法也是public。

关于访问权限,还有一点需要注意的是,父类方法如果是private,根据JAVA的封装性原则,private是不让其它任何类访问的。那么,此时子类能否对父类的private方法进行覆写呢?

答案是否定的。
举个例子

class A {
    public void test() {
        fun();
    }

    private void fun() {
        System.out.println("父类的private fun()");
    }
}

class B extends A {
    public void fun() {
        System.out.println("子类的public fun()");
    }
}

public class Hello {
    public static void main(String[] args) throws Exception {
        B b = new B();
        b.test();
    }
}

此时运行结果是调用的父类的private fun()方法。

所以,此时对重载和覆写做一个总结:
在这里插入图片描述

Multisim实战:从8选1到32选1数据选择器的完整搭建指南(附常见问题解决) 本文提供了一份详尽的Multisim实战指南,手把手教你从基础的8选1数据选择器开始,逐步级联搭建16选1乃至32选1数据选择器。文章深入剖析了级联的核心逻辑、片选方案以及使用译码器的专业方法,并附带了电源连接、输出冲突、信号毛刺等常见问题的诊断与解决技巧,帮助电子工程学生和爱好者扎实掌握数字电路的系统设计与仿真调试。 阅读详情

相关推荐

A robust and easy to implement method for IMU calibration without external equipments(IMU标定)

A robust and easy to implement method for IMU calibration without external equipments 1 标定原理1 亲试可用,还有动态演示效果不错。相比商用产品的简易标定流程,该标定方法有以下几点不同: 给出了加速度计和陀螺仪更复杂的模型。 利用Allan方差的定义,标定陀螺仪的偏置。 大量冗余数据,保证最优化收敛。利用数十...

擦擦擦大侠的博客 3948

override 与 overload

“死党”是一种很不健康的朋友关系。确实,收获一名死党能让寂寞远离,但同时也意味着你将面临更多的选择:你不得不爱朋友之所爱,恶朋友之所恶。最终,你将变得不像你自己。而处于一个团队之中,最忌讳出现死党,当你的死党与某人翻脸时,试问你该如何处理与此人的关系呢?死党,在形成一段紧密关系的同时也与外界产生了隔阂。这是最近的一些生活感想。 Java 中有两种方式可以复用同一个方法名,这两种方式分别称

Dancen的专栏 813

全面解析:时延扩展与相干带宽、多普勒扩展与相干时间——无线通信基础

时延扩展与相干带宽 多径时延扩展与多径衰落 接收机所接收到的信号是通过不同的直射、反射、折射等路径到达接收机。由于电波通过各个路径的距离不同, 因而各条路径中发射波的到达时间不同,造成多径时延扩展。距离不同所以到达接收机的相位也不相同,不同相位的多个信号在接收端叠加, 如果同相叠加则会使信号幅度增强, 而反相叠加则会削弱信号幅度。 这样,接收信号的幅度将会发生急剧变化,就会产生多径衰落。 ...

king阿金 4万+

方法的复写(Override)和重载(Overload)

一个接受两个整数作为参数并返回整数结果,另一个接受两个浮点数作为参数并返回浮点数结果。根据调用时提供的参数类型,编译器将选择合适的重载方法。方法的复写(Override)和重载(Overload)是面向对象编程中常用的概念,它们允许在继承关系中重新定义和扩展父类的方法。方法时,将输出 "Cat meows" 而不是 "Animal makes a sound"。希望这解释清楚了方法复写和重写的概念!

suimingbo的博客 672

图像去雨:超详细手把手写 pytorch 实现代码(带注释)

占个坑,过几天来写

书山有路,学海无涯! 1万+

LeRobot 入门教程(十一)π0(Pi0)π0.5(Pi0.5)训练、推理、部署

本文介绍了Physical Intelligence公司开发的π₀和π₀.₅系列通用机器人控制视觉-语言-动作模型。π₀作为首款基础模型,融合流匹配、跨实体训练等技术,支持50Hz高频控制。π₀.₅是其升级版,通过异构数据协同训练解决开放世界泛化问题,在Libero基准测试中表现优异。文章详细说明了两个模型的安装要求、使用方法、训练策略及关键参数配置,包括混合精度训练、梯度检查点等优化技术,为机器人在多样化场景中的语义理解和动作控制提供了完整解决方案。

2506_90492529的博客 5036

java基础学习总结——方法的重载(overload)

一、方法的重载      方法名一样,但参数不一样,这就是重载(overload)。   所谓的参数不一样,主要有两点:第一是参数的个数不一样,第二是参数的类型不一样。只要这两方面有其中的一方面不一样就可以构成方法的重载了。 1 package cn.galc.test; 2 3 public class TestOverLoad { 4 5 void m...

weixin_30908941的博客 382

Unreal从入门到精通之 UE4 vs UE5 VR性能优化实战

这篇文章分享了UE5 VR项目的性能优化经验。作者通过对比UE4和UE5的VR模板性能,发现UE5默认帧率只有45FPS,远低于UE4的100FPS。主要性能瓶颈来自Lumen全局光照、虚拟阴影贴图等新特性。文章详细列出了12项关键优化设置,包括禁用Lumen、关闭虚拟阴影、使用前向渲染等,并分析了各项调整对性能的影响程度。特别指出删除默认的VolumetricCloud可立即提升5帧。最后建议根据场景需求平衡画质与性能,对于高帧率要求的VR项目,可能需要谨慎使用UE5或关闭其部分高级渲染功能。

TxNet 1380

Java多个类重写同一个方法_java – 从同一个类中重写两次相同的方法

我理解iterator()方法如何与ArrayList类一起使用.在ArrayList类中,我发现iterator()方法从同一个类AbstractList重写了两次.public Iterator iterator() {return new Itr(); // Itr is an inner private class of// ArrayList which// impl...

weixin_42346935的博客 1146

YOLO26涨点改进 | 全网独家,注意力创新改进篇 | Arxiv2025 | YOLO26引入MSLA多尺度线性注意力模块,高效提取多尺度特征和建模长程依赖,含多种创新改进,助力有效涨点

本文提出了一种多尺度线性注意力模块(MSLA)来优化YOLO26模型。MSLA通过并行使用不同尺寸的深度可分离卷积(3×3至9×9)提取多尺度特征,并结合线性注意力机制高效建模全局依赖关系。该模块显著提升了模型对多尺度目标的检测能力,同时保持了轻量化特性。实验表明,MSLA能有效增强小目标检测和复杂场景下的分割精度。文章详细介绍了MSLA的网络结构、核心优势及实现代码,并提供了两种集成MSLA的YOLO26改进方案,为实时目标检测任务提供了高效解决方案。

Ai缝合怪、助力小伙伴高效发论文 292

【SpringBoot笔记44】SpringBoot多数据源配置(方式一:配置多个mapper扫描不同的包路径实现多数据源配置)

在SpringBoot应用开发中,一般情况下,都是只会配置一个数据源信息,之后整个工程都是对当前数据源进行增删改查的操作。但是,在实际开发里面,也有可能会遇到多数据源的情况,例如:当前工程中除了需要访问自己应用的数据库,还需要直接连接第三方系统的数据库进行业务处理,这种情况下,就需要进行多数据源的配置。SpringBoot考虑到了这一点,所以它是支持多数据源的配置的,下面介绍一下如何配置多数据源。

✅ Java 开发工程师 1116

java基础知识: day15-方法的重载(overload)与重写/覆写(override)

重写(Override) 钙素 重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。也就是说子类能够根据需要实现父类的方法。在面向对象原则里,重写意味着可以重写任何现有方法。实例如下: class Animal{ public void move(){ System.o...

weixin_34292924的博客 127

影像组学文章复现:ITHscore:通过多尺度放射学特征全面定量NSCLC肿瘤内异质性 ----小细胞肺癌肿瘤异质性评分

目的:通过计算机断层扫描(CT)图像量化非小细胞肺癌(NSCLC)的肿瘤内异质性(ITH)。 方法:整合局部辐射特征和全局像素分布模式,开发定量ITH测量-ITHscore。在六个患者队列(n = 1399)中检查ITHscore与肿瘤表型,基因型和患者预后的关联,以验证其在表征ITH方面的有效性。

xxx 1020

JAVA中继承时方法的重载(overload)与重写/覆写(override)

JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载。 从含义上说,只要求参数的个数或参数的类型不一致就说两个函数是重载函数,而至于返回值是否一样,没关系。同时,重载可以发生在同一个类中也可以发生在继承关系中。 class A { } class B exten...

weixin_30594001的博客 361

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

重载(overload)和重写(override)的区别

重载和重写

bleauchat的博客 6274

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java 中的重载(overload)和重写(override)

重载和重写都是面向对象编程中的概念,但我们或许还听说过一种叫做覆写(overwrite)的概念。C++ 是拥有这个概念的,Java 只有 overload 和 override,Python 只有隐式的 overload 和 override,没有 overwrite 的概念。在重载(overload)、重写(override)和覆写(overwrite)中,我们一般对前面两个比较熟悉,对最后一个会略微陌生一些。想了解更多就进来看看吧!

小康2022的博客 3017

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

菜鸟Java面向对象 2. Java 重写(Override)与重载(Overload)

方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。(2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。

m0_46211715的博客 2940

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

方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading)。(2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写(Overriding)。

hyc2005的博客 1105

Override(方法重写)和Overload(重载)的区别

前言: 各位小伙伴们,大家好,一日不见,如隔一日,今天我给大家分享一下大家在学习java过程当中遇到的一个问题,也是一道面试题,java中,Override和Overload的区别。 目录 前言: 一、方法重写(Override) 1、方法重写基本概念 2、方法重写基本规则及注意事项 二、overload方法重载 1、什么是重载 2、重载的规则 一、方法重写...

秋雨绵绵 2753

Java方法重载(Overload)与覆写(重写Override)

方法重载 定义: 方法名相同,参数类型或个数不同、顺序不同。与返回值无关! 每一个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。 最常用的地方就是构造器的重载 重载规则: 被重载的方法必须改变参数列表(参数个数或者类型不一样); 被重载的方法可以改变返回类型; 被重载的方法可以改变访问修饰符; 被重载的方法可以声明新的或者更广的检查异常; 方法能够在同一类中或者在一个子类中被重载...

阿巴卡的博客 2007

覆写(Override)与重载(Overload)

覆写(Override):子类中方法与其父类中方法的方法名和参数相同,则该方法被覆写。覆写是父类与子类之间多态性的体现,子类对父类的方法进行重新定义。 Java中,子类可以继承父类的方法而无需重新写形同的方法,但有时子类不想仅仅只是继承父类方法,而还想作些改动,此时便要覆写方法。即子类继承自父类相同方法名、参数,但要做出有别于父类的响应,此时就要在子类中重写该该方法,覆盖掉父类方法,如果还要父类中

泥陶匠 1795

关于覆写——Override

1.覆写:子类定义了与父类相同的方法或属性,这样的操作就称为覆写(Override) 2.子类定义了与父类方法名称、参数类型及个数完全相同的方法,但是被覆写不能拥有比父类更为严格的访问控制权限。 3.当调用某个方法的时候,如果该方法已被子类所覆写,则调用的一定是被覆写过的方法。 class Person{ public void print(){ System.out.p...

qq_44847147的博客 1055

重写(override)与重载(overload)的区别

重写(override) override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。 重写(覆盖)的规则: 重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载. 重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。 重写...

kkagr的博客 4557

一文读懂java重载,重写(覆写,覆盖)的区别

重写和重载区别很大,重载是指一个方法名经过参数类型或者个数的修改可以被多次调用,而重写是指子类将父类继承过来的某个方法给覆盖掉了,调用的实际是子类自己的方法。

m0_74131274的博客 2506
上一篇: Java8之list.stream的常见使用例子
下一篇: Java 8中处理集合的优雅姿势——Stream
Allenlzcoder
博客等级 码龄10年 925粉丝 512原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值