方法重载(Overload)

在这里插入图片描述

前言

在前面的学习中,我们学到了重写(Override),这里我们主要进行重载(Overload)的介绍,同时对重写和重载的区别进行分析。

1. 重载(Overload)

#方法重载 在同一个类中定义多个同名但参数不同的方法。我们称方法与方法之间构成方法重载
在Java中,如果多个方法的名字相同,参数列表不同,我们就说这几种方法发生了方法重载。

public static int add(int x,int y) {
	return x + y;
}

public static double add(double x,double y) {
	return x + y;
}

public static double add(double x,double y,double z) {
	return x + y + z;
}

上述方法构成了方法重载,也就是说发生方法重载需要满足以下条件:

  1. 方法名必须相同
  2. 参数列表必须不同(参数个数不同/参数类型不同/类型次序不同)
  3. 与返回值类型无关,即对返回值类型不做要求

1.1 方法签名

我们知道在同一个作用域中不能定义两个相同名称的标识符,如:在一个方法中定义两个同名变量,这是不可行的。当我们在一个作用域中定义两个同名变量,编译器会报错。那为什么方法重载发生在同一个类中且方法名相同而不会报错呢?

Java中通过方法签名区分发生重载的方法,确定你调用的是那个方法。
**方法签名(编译器修改后方法最终的名字):**方法全路径名 + 参数列表 + 返回值类型

通过JDK自带的反汇编工具(在控制台中输入:javap - v 字节码文件名)我们可以查到上述发生方法重载的3个add()方法,经过编译器编译后得到的名字如下:
在这里插入图片描述

Tip: 方法名后括号中的内容表示参数类型,括号外的符号表示返回值类型

2. 重载(Overload)和重写(Override)的区别

方法重写(Override)和方法重载(Overload)要求方法名必须相同,也就是说重写和重载的区别主要体现在参数列表、返回值类型、访问限定符等方面。

区别重写(Override)重载(Overload)
参数列表不能修改,与原方法保持一致必须修改,与原方法不同
返回值类型与原方法相同或与原方法构成父子类关系返回值不做要求
访问限定修饰符重写方法的访问权限不能比父类中被重写方法的访问权限更低可以修改,不做要求

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【linux进程】进程优先级命令行参数环境变量

目录 一,进程切换二,进程优先级1. 什么是优先级2. 权限 vs 优先级3. 为什么要有优先级4. 优先级的查看方式 三,命令行参数1. 什么是命令行参数2. 为什么要有命令行参数3. 是谁做的 四,环境变量1. 基本概念2. 常见环境变量3. 查看环…

针对线上消息积压的排查思路以及解决方案

一、背景 我们在日常工作中,经常会碰到线上告警,消息队列消息积压了,试想如果对消息的消费速率有要求的场景,消息积压一定会或多或少对自己本身的业务场景有影响,这里就针对消息积压的场景,谈谈具体的排查…

15分钟学 Python 第37天 :Python 爬虫入门(三)

Day 37 : Python爬虫入门大纲 章节1:Python爬虫概述 1.1 什么是爬虫? 网页爬虫(Web Crawler)是一种自动访问互联网上网页并提取数据的程序。爬虫的作用包括搜索引擎索引内容、市场调查、数据分析等。 1.2 爬虫的工作原理 发起…

Vue中使用ECharts实现热力图的详细教程

在数据可视化领域,热力图是一种非常直观的表现形式,它通过颜色深浅来展示数据分布情况。在Vue项目中,我们可以使用ECharts这一强大的图表库来实现热力图。下面我将详细介绍如何在Vue中使用ECharts实现热力图。效果如下图: 一、准备…

Python或R时偏移算法实现

🎯要点 计算单变量或多变量时序距离,使用欧几里得、曼哈顿等函数量化不同时序差异。量化生成时序之间接近度相似性矩阵。使用高尔距离和堪培拉距离等相似度测量。实现最小方差匹配算法,绘制步进模式的图形表示。其他语言包算法实现。 &…

vue3 + ts + cesium:绘制、更新圆 ellipse

本文主要实现基础的绘制圆形,并且可以通过拖动圆心更新圆的位置,拖动圆上的边缘点改变圆的半径。 实现效果: (1)单击鼠标左键开始绘制,确定圆的圆心,移动鼠标,改变圆的半径&#xff…

Mac屏蔽系统更新,取出红点标记如果解锁hosts文件

引言:关闭系统更新,首先应该在系统偏好设置---软件更新---去掉自动更新的选项。即使如此,系统仍然进行macOS系统和自带safari等软件的检测更新,并图标右上角红点点标记提醒我们更新,那我们如果彻底屏蔽更新呢&#xff…

解决 Adobe 盗版弹窗

在这个文件夹下删除 Adobe CCXProcess 然后重装。 Adobe Premiere Pro 2024 (v24.6.1) Multilingual :: Варез от m0nkrusa [Warez by m0nkrus] (monkrus.ws) Adobe Photoshop 2024 (v25.12) Multilingual :: Варез от m0nkrusa [Warez by m0nkrus] (monkrus.…

Spring Boot RESTful API开发教程

一、RESTful API简介 RESTful API是一种基于HTTP协议的Web API,其设计原则是简单、可扩展、轻量级、可缓存、可靠、可读性强。RESTful API通常使用HTTP请求方法(GET、POST、PUT、DELETE等)来操作资源,使用HTTP状态码来表示操作结…

JQuery基本介绍和使用方法

文章目录 JQuery基本介绍和使用方法引入依赖 jQuery语法jQuery选择器jQuery事件操作元素获取/设置元素内容获取/设置元素属性获取/返回css属性添加元素删除元素 JQuery基本介绍和使用方法 W3C 标准给我们提供了⼀系列的函数, 让我们可以操作: ⽹⻚内容⽹⻚结构⽹⻚样式 但是…

案例-猜数字游戏

文章目录 效果展示初始画面演示视频 代码区 效果展示 初始画面 演示视频 猜数字游戏 代码区 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width,…

PostgreSQL Docker Error – 5432: 地址已被占用

PostgreSQL Docker Error – 5432: 地址已被占用 今天在学习【Spring Boot React】价值79.9美元&#xff0c;全栈开发&#xff0c;搭建个人网站、做毕业设计、试试这套课程第17~21节视频的时候&#xff0c;发现运行docker run --name demo-postgres -e POSTGRES_PASSWORDpass…

【C++】类与对象(三)

「前言」 &#x1f308;个人主页&#xff1a; 代码探秘者 &#x1f308;C语言专栏&#xff1a;C语言 &#x1f308;C专栏&#xff1a; C &#x1f308;喜欢的诗句:天行健,君子以自强不息. 目录 一、再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1.3 explicit 关键字 二…

pycharm中使用anaconda创建多环境,无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

问题描述 用的IDE是&#xff1a; 使用anaconda创建了一个Python 3.9的环境 结果使用pip命令的时候&#xff0c;报错 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案 为了不再增加系统变量&#xff0c;我们直接将变量添加在当前项目中你的Ter…

类型转换【C++提升】(隐式转换、显式转换、自定义转换、转换构造函数、转换运算符重载......你想知道的全都有)

更多精彩内容..... &#x1f389;❤️播主の主页✨&#x1f618; Stark、-CSDN博客 本文所在专栏&#xff1a; C系列语法知识_Stark、的博客-CSDN博客 座右铭&#xff1a;梦想是一盏明灯&#xff0c;照亮我们前行的路&#xff0c;无论风雨多大&#xff0c;我们都要坚持不懈。 一…

前端学习第三天笔记 JavaScript JavaScript的引入 数据类型 运算符 条件语句 字符串

这里写自定义目录标题 JavaScriptJavaScript引入到文件嵌入到HTML文件中引入本地独立js文件引入网络来源文件 JavaScript的注释方式嵌入在HTML文件中的注释JavaScript的输出方式数据类型原始类型&#xff08;基础类型&#xff09;合成类型&#xff08;复合类型&#xff09; 运算…

《15分钟轻松学 Python》教程目录

为什么要写这个教程呢&#xff0c;主要是因为即使是AI技术突起的时代&#xff0c;想要用好AI做开发&#xff0c;那肯定离不开Python&#xff0c;就算最轻量级的智能体都有代码块要写&#xff0c;所以不一定要掌握完完整整的Python&#xff0c;只要掌握基础就能应对大部分场景。…

使用VBA快速生成Excel工作表非连续列图片快照

Excel中示例数据如下图所示。 现在需要拷贝A2:A15,D2:D15,J2:J15,L2:L15,R2:R15为图片&#xff0c;然后粘贴到A18单元格&#xff0c;如下图所示。 大家都知道VBA中Range对象有CopyPicture方法可以拷贝为图片&#xff0c;但是如果Range对象为非连续区域&#xff0c;那么将产生10…

深刻理解Redis集群(下):Redis 哨兵(Sentinel)模式

背景 现在对3个节点的sentinel进行配置。sentinel的配置文件在redis的安装目录中已经存在&#xff0c;只需要复制到指定的位置即可。 sentinel是独立进程&#xff0c;有对应的脚本来执行。 基于之前的redis 一主二从的架构&#xff0c;我们继续启动3个sentinel进程。 哨兵模式的…

MAC备忘录空白解决方案

打开icloud->备忘录 取消勾选同步此MAC后再次勾选&#xff0c;然后点击完成即可。