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

【Java学习日记26】:方法的重载

一、方法重载核心概念

方法重载(Overload):指在同一个类中定义多个同名方法,但这些方法的参数列表必须不同。重载的目的是让同一功能的方法能处理不同类型或数量的参数,提高代码复用性。


二、判断是否构成重载的规则

满足以下任意一个条件即构成重载:

  1. 参数类型不同

    void show(int a) {}
    void show(double a) {}
  2. 参数个数不同

    void print() {}
    void print(String s) {}
  3. 参数顺序不同(类型必须不同才有效)

    void test(int a, String b) {}
    void test(String b, int a) {}

不构成重载的情况

  • 仅返回值类型不同

    int getSum() { return 1; }
    double getSum() { return 1.0; } // 编译报错!
  • 仅参数名称不同

    void func(String name) {}
    void func(String address) {} // 编译报错!

三、定义重载方法的步骤

  1. 明确功能目的:所有重载方法需实现相同核心功能(如“加法”)。

  2. 统一方法名:使用相同的名称表示相同功能。

  3. 设计参数差异:通过参数类型、个数或顺序区分方法。


四、代码示例

java

复制

下载

public class Calculator {// 整数加法public int add(int a, int b) {return a + b;}// 小数加法(参数类型不同)public double add(double a, double b) {return a + b;}// 三数加法(参数个数不同)public int add(int a, int b, int c) {return a + b + c;}// 参数顺序不同(类型不同)public String join(String s, int n) {return s + n;}public String join(int n, String s) {return n + s;}
}

五、注意事项

  1. 可变参数与数组int... 和 int[] 视为相同参数类型,不能重载。

  2. 自动类型转换:调用时会匹配最精确的参数类型,如 add(2,3) 优先调用 add(int, int) 而非 add(double, double)

  3. 避免歧义设计:如 test(int, double) 和 test(double, int) 在调用 test(5,5) 时会导致编译错误。

http://www.xdnf.cn/news/1815.html

相关文章:

  • 通道降维方式
  • Java大模型开发与应用 - 面试实战
  • 【金仓数据库征文】金仓数据库KingbaseES:在技术与人文交织中开拓信创未来
  • 【Linux】gdb工具,Linux 下程序调试的 “透视眼”
  • AgeTech News|银发科技一周行业大事件
  • Python 端口转发:程序员必备的网络黑科技!
  • Linux解压tar.gz包的正确姿势(附赠防抓狂指南)
  • 2024 年中国头部互联网企业财报解读:阿里财报、腾讯财报、京东财报、美团财报、拼多多财报、小米集团财报
  • 第一部分:git基本操作
  • netlist
  • python——异常
  • 区块链驱动的供应链金融创新:模型构建与商业化路径研究
  • string容器训练算法题
  • IJCV期刊2025年3月研究热点解析
  • BLIP 系列论文(BLIP、BLIP-2、InstructBLIP)
  • Android面试题目基础总结(二)
  • RCE学习
  • 第八节:进阶特性高频题-Pinia与Vuex对比
  • 马架构的Netty、MQTT、CoAP面试之旅
  • Windows 安装 JDK
  • react nativeWebView跨页面通信
  • YOLOv11改进:轻量化模型MobileNetv4
  • 如何在 Dialog 中安全初始化 ECharts 并自动监听容器大小变化
  • Python3 基础:函数定义与调用
  • Java 运算符:深度解析
  • 在深度学习中FLOPs和GFLOPs的含义及区别
  • 大模型是如何生成内容的?
  • Linux内核之struct pt_regs结构
  • Spring 中的循环引用问题
  • ROS 快速入门教程03