当前位置: 首页 > news >正文

方法重载(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)
参数列表不能修改,与原方法保持一致必须修改,与原方法不同
返回值类型与原方法相同或与原方法构成父子类关系返回值不做要求
访问限定修饰符重写方法的访问权限不能比父类中被重写方法的访问权限更低可以修改,不做要求
http://www.lryc.cn/news/453148.html

相关文章:

  • [论文笔记]SGPT: GPT Sentence Embeddings for Semantic Search
  • 基于微信小程序的旅游拼团系统
  • 富格林:警悟可信经验安全投资
  • 【Linux】使Ubuntu自适应窗口大小并与主机共享文件
  • C++ 语言特性18 - static_assert 介绍
  • centos 7.9系统redis6.2.6哨兵模式部署
  • 编程基础:详解 C++ 中的 `std::sort` 函数
  • 51单片机的宠物自动投喂系统【proteus仿真+程序+报告+原理图+演示视频】
  • MongoDB快速实战与基本原理
  • 编程技巧:优化
  • pycharm中使用anaconda创建多环境,无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
  • 【Linux】进程周边之优先级
  • Linux高级编程_29_信号
  • uniapp修改uni-ui组件样式(对微信小程序/H5有效,vue3)
  • Python 封装 socket 为 [TCP/UDP/MULTICAST] 服务端
  • c++ STL库 unordered_map
  • 【接口测试】任务1:登录接口
  • 二、Spring Boot集成Spring Security之实现原理
  • 基于深度学习的点云处理模型PointNet++学习记录
  • Javascript Object.assgin()详解以及深浅拷贝
  • Redis篇(应用案例 - UV统计)(持续更新迭代)
  • 解锁微信小程序新技能:ECharts动态折线图搭配WebSocket,数据刷新快人一步!
  • 上交所服务器崩溃:金融交易背后的技术隐患暴露杭州BGP高防服务器43.228.71.X
  • P4、P4D、HelixSwarm 各种技术问题咨询
  • Linux 应用层协议HTTP
  • Python和C++混淆矩阵地理学医学物理学视觉语言模型和算法模型评估工具
  • HTTP 协议的基本格式和 fiddler 的用法
  • 【计算机网络】详解UDP协议格式特点缓冲区
  • 网络安全cybersecurity的几个新领域
  • android 原生加载pdf