重载与重写

重写和重载傻傻分不清?看完这篇秒懂! 方法重载指的是在同一个类中定义多个方法,这些方法名称相同,但它们的参数列表不同(包括参数的个数或类型不同)。这样在调用时,Java编译器会根据传递的参数来选择对应的方法。1.1 方法重载的特征相同的名称:重载的方法名必须相同。不同的参数列表:重载方法的参数数量或者类型必须不同。与返回类型无关:重载方法的返回类型可以相同,也可以不同,但仅靠返回类型不同不能实现重载。编译期决定:重载是在编译期间由编译器决定的,即在代码编译阶段就能知道应该调用哪个方法。 阅读详情

1. 二者区别

重载----|        |-编译时多态
        |--多态--|
重写----|        |-运行时多态

重载:发生在一个类中,同名的方法如果有不同参数列表(参数类型或个数),视为重载。
重写:发生在子类与父类之间,要求同名、参数一致、返回类型相同。访问权限更好(相当于扩展)。

重载不能根据返回类型来区分。

说明:如函数名不同,则相当于另外一个函数。没有重载重写只说。
二者的核心就是编译器能唯一地识别该方法即可,明确地调用某个方法,有明确地返回值即可。

2. 重载

重载相当于不同的方法,只是名字相同更好的语义化而已。比较自由。

3. 重写

1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。

2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。

3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)

4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:
父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。

(1)示例1:重载可以有更宽的访问权限

这里写图片描述
这里写图片描述

(2)示例2:重载的返回类型必须一样

这里写图片描述

(3)示例2:当参数类型不一样或个数不一样时,编译器不会产生歧义。这时候不是重写,不受限制

这里写图片描述

Java重写与重载 重写是指子类覆盖父类的方法,它们具有相同的方法名、参数类型、返回值类型和异常类型。在子类中,如果重写的方法中抛出的异常类型比父类方法中抛出的异常类型更多,也不允许重写。在上面的示例中,子类Dog重写了父类Animal的makeSound()方法,因此在调用dog.makeSound()时输出的是子类中的实现。2. 子类方法的访问修饰符不能比父类方法的更严格(例如,如果父类方法是public,那么子类方法不能是private)。Java中的方法重写是指子类覆盖父类的同名方法,以实现新的实现方式或逻辑。 阅读详情

相关推荐

重写与重载

文章目录1. 问题描述2. 问题方案2.1 重写(Override)2.1.1 重要特征2.1.2 主要场景2.1.3 示例2.2 重载(Overload)2.2.1 重要特征2.2.2 常用场景2.2.3 示例 1. 问题描述 随着头越来越秃,会发现Java中重写与重载越来越重要,贯穿整个编程过程,用通俗的语言简单介绍 2. 问题方案 重写和重载都是java多态性的一种表现。 2.1 重写(Ov...

软件老王 2154

重载与重写的区别

重载(Overloading)  方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。 重载Overloading是一个类中多态性的一种表现。  Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是

linzhaojie525的博客 27万+

学习STM32的无人机控制

下面是一个基于STM32的无人机控制的简单示例代码,包括四旋翼的PID控制、遥控器信号解析和电机控制。本示例以STM32F103系列为例,使用Keil C编译器进行开发。

qq_67153941的博客 706

代码里的Override和Overload

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

weixin_38226447的博客 1734

用LT1166+MOS管打造实验室级恒流源:闭环反馈与推挽驱动的深度调优

本文详细介绍了基于LT1166电流模式控制器与MOS管推挽架构的实验室级恒流源设计方法。通过闭环反馈调优和动态响应优化,实现带宽达100kHz、纹波低于0.1%的高性能恒流输出,适用于精密仪器校准和半导体测试等场景。重点解析了系统架构设计、MOS管选型策略以及频率响应测试等关键技术要点。

weixin_29290379的博客 202

深入Android构建系统:一次修改ro.vendor.build.fingerprint失败的排查与解决记录

本文深入探讨了Android构建系统中修改ro.vendor.build.fingerprint的完整解决方案。通过分析vendor分区的特殊地位和构建指纹的生成路径,提供了三种实战修改方法,并揭示了指纹修改可能遇到的陷阱与对策,帮助开发者彻底解决这一常见问题。

weixin_30621711的博客 139

重载和重写有什么区别

重载和重写是Java中两个重要的概念。重载可以实现本类内的方法多态性,重写可以实现子类或实现类的多态性。

m0_63036262的博客 2万+

PFC电压环与电流环的带宽设计:如何避免输入电流畸变?

本文深入探讨了PFC电路中电压环与电流环的带宽设计问题,揭示了快速电压环导致输入电流畸变的机制,并提供了避免THD上升的工程实践方法。通过分析双环控制架构、谐波失真原理及带宽设计黄金法则,帮助工程师优化PFC系统性能,实现高功率因数与低谐波失真的平衡。

weixin_28304023的博客 420

什么是重写?重写的作用?

1、什么是重写? 个人理解:在子类中可以根据需要对从基类中继承来的方法进行重写,重写是对类中方法的扩充,因为继承用的是父类的东西,重写则不仅得到父类的东西,同时也加入了自己的东西 官方理解:在Java和其他一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写...

Thinkingcao的专栏 7万+

stm32h743 FM25CL64铁电存储器踩坑记录

调试FRAM经验总结: 1、跑完FRAM读写代码之后,逻分仪发现总线上只有简单、短暂的电平变化,明显不是SPI的通信数据。 (经提醒发现连片选拉高拉低都没有执行到位) 后来发现是因为片选引脚没有初始化,所以直接拉高拉低是无效的。 2、引脚成功初始化后发现CLK、MISO、MOSI数据仍不正常。通过加打印的方式发现跑到HAL_SPI_Transmit中之后还没有执行到写SPI数据寄存器的那一步就return了。 后来经提醒发现: 上图中的指针使用方式错误 后来又发现: 打印出来发现

kuniqiw的博客 3844

ChatGPT and Claude国内使用站点

这篇博客介绍了不同的AI聊天平台和定价信息,主要对比了ChatGPT和Claude两款产品。文章列出了多个提供聊天服务的AI平台,包括RawChat、ChatGPTPlus、ChatOpens、Wildcard和2233.ai等,并提供了每个平台的网页链接和定价详情。特别关注了Claude平台,介绍了其普通账号与会员账号的不同,以及相关的定价信息。此外,还提到了一些虚拟卡定价和服务细节,为用户选择合适的AI服务提供了多种参考。

nisidjndn的博客 1万+

C#重载与重写的区别

前言:在之前的博文中,我总结过重载与重写的区别与用法,本博文算是一个系统的概况。 文章目录一、重载与重写的区别二、重载与重写的特征三、重载与重写的对比 一、重载与重写的区别 重载必须在同一个类,重写在派生类 重载方法名,参数列表必须不同,返回值类型可不同。重写的两个方法返回值、方法名、参数列表必须完全一致。 重写子类异常不能超过父类相应方法抛出的异常。 重写子类访问级别不能低于父类相应方法的访问级别。 关键字: 重写(override)、重载(overload) 可在子类中被重写的方法一定要被标记成vir

路虽远,行则必至! 4026

6万字嵌入式最全八股文面试题大全及参考答案(持续更新)

进程上下文定义:进程上下文包含了进程执行时所需的所有信息,包括 CPU 寄存器的值、内核栈、任务控制块(TCB)等。作用:当进程被切换时,需要保存当前进程的上下文,并恢复下一个将要运行进程的上下文。中断上下文定义:中断上下文是指处理中断时 CPU 所处的状态,包括中断发生时的寄存器值等。作用:当中断发生时,CPU 会自动保存当前的上下文信息,并跳转到相应的中断处理程序。示例表格上下文描述进程上下文包含进程执行时的所有相关信息中断上下文处理中断时 CPU 所处的状态线程同步定义。

大模型大数据攻城狮的专栏 7921

4、方法重写与重载

方法重写与重载 重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念。但是对于新手来说也比较容易混淆。本文通过两个简单的例子说明了他们之间的区别。 定义 重载 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不 同参数的函数或者方法之间,互相称之为重载函数或者方法。 重写 重写指的是在 Java的子类与父类中有两个名称、参数列表都相同的方法的情况。由于他们具有相同的方法签名,所以子类...

qq_40824748的博客 1127

Docker:安装Apache Pulsar 消息队列的详细指南

本文详细介绍了Apache Pulsar的Docker化安装部署方法,包括单节点Pulsar服务和管理界面Pulsar Manager的安装配置。通过Docker命令快速搭建Pulsar环境,并演示了租户和命名空间的基础管理操作。同时提供了Spring Boot项目与Pulsar集成的完整方案,从依赖配置到客户端初始化,为开发人员构建实时消息系统提供实用参考。

木头 2209

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

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

方法的重写与重载

如果一个类有多个名字相同但参数个数不同的方法,我们通常称这些方法为方法重载如果子类具有和父类一样的方法(参数相同、返回类型相同、方法名相同,但方法体可能不同),我们称之为方法重写。

2405_88415278的博客 825

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JAVA的重载与重写

重载 重载出现在同一个类当中,当一个类中的方法名相同而参数列表不同时是可以的,这些相同方法名的方法就是重载的体现。当调用这个同名函数时,会根据你的参数列表来寻找你要调用的那个方法。 package test; public class Person { int age; String name; //从这里开始 public Person() { } public Person(int age) { this.age = age; } public Person(String na

weixin_48510456的博客 233

STM32F407中文手册

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java重载与重写

java重载 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设...

神行无影倒骑驴的博客 241

【Java】重载与重写

文章目录 文章目录图2. Android类中的常见的一个重写例子 问: Java 重载与重写是什么?有什么区别? 问:Java 构造方法能否被重写和重载? 问:下面程序的运行结果是什么,为什么? 问: Java 重载与重写是什么?有什么区别? 答:   重载(Overload)是让类以统一的方式处理不同类型数据的一种手段,实质表现就是多个具有不同的参数个数或者类型的同名函数(返回值类型可随意,不能以返回类型作为重载函数的区分标准)同时存在于同一个类中,是一个类中多态性的一种表现(调用方法时通过传递不同参数个

sweet_smile5的专栏 238
上一篇: jvm垃圾回收的补充
下一篇: 设计模式--装饰器(Decorator)模式
王小禾
博客等级 码龄11年 80粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值