第八十三节 Java面向对象设计 - Java方法重载

Java面向对象设计 - Java方法重载

在同一类中具有多个具有相同名称的方法称为方法重载。

类中具有相同名称的方法可以是声明的方法,继承的方法或两者的组合。

重载方法必须具有不同数量的参数,不同类型的参数或两者。

方法的返回类型,访问级别和throws子句对使其成为重载方法没有任何影响。

import java.io.IOException;

class MyClass {
  public void m1(int a) {
    // Code goes here
  }

  public void m1(int a, int b) {
    // Code goes here
  }

  public int m1(String a) {
    // Code goes here
    return 0;
  }

  public int m1(String a, int b) throws IOException {
    // Code goes here
    return 0;
  }
}

例子

下面的代码显示了如何使用重载。

public class Main {
  public double add(int a, int b) {
    System.out.println("Inside add(int a, int b)");
    double s = a + b;
    return s;
  }

  public double add(double a, double b) {
    System.out.println("Inside add(double a,  double   b)");
    double s = a + b;
    return s;
  }

  public static void main(String[] args) {
    Main ot = new Main();
    int i = 1;
    int j = 1;
    double d1 = 10.42;
    float f1 = 22.3F;
    float f2 = 24.5F;
    short s1 = 22;
    short s2 = 26;

    ot.add(i, j);
    ot.add(d1, j);
    ot.add(i, s1);
    ot.add(s1, s2);
    ot.add(f1, f2);
    ot.add(f1, s2);
  }
}

上面的代码生成以下结果。

例2

有时,重载方法和自动类型扩展可能会混淆编译器,导致编译器错误。

class Adder {
  public double add(int a, double b) {
    return a + b;
  }

  public double add(double a, int b) {
    return a + b;
  }
}

public class Main {
  public static void main(String[] args) {
    Adder a = new Adder();
    // double d = a.add(2, 3); // A compile-time error
    double d1 = a.add((double) 2, 3); // OK. Will use add(double, int)
    double d2 = a.add(2, (double) 3); // OK. Will use add(int, double)

  }
}

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

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

相关文章

数字孪生技术为何备受各行业青睐?

数字孪生技术近年来在各行业中受到越来越多的重视,这是因为它具备了显著的优势和广泛的应用前景。数字孪生是指利用数字化技术,在虚拟空间中创建一个与现实世界对应的虚拟模型,通过数据的实时交互和反馈,实现对物理实体的模拟和监…

3d模型移动中心点偏移太远怎么解决?---模大狮模型网

在3D建模和动画制作中,移动模型时确保中心点的准确性至关重要。然而,有时候在移动模型时,中心点可能会偏移得太远,导致操作不便甚至影响到后续的工作流程。本文将介绍在3D模型移动中心点偏移太远时的常见原因,并提供解…

Linux系统编程——动静态库

目录 一,关于动静态库 1.1 什么是库? 1.2 认识动静态库 1.3 动静态库特征 二,静态库 2.1 制作静态库 2.2 使用静态库 三,动态库 3.1 制作动态库 3.2 使用动态库一些问题 3.3 正确使用动态库三种方法 3.3.1 方法一&…

sprintboot中拦截器的使用

文章目录 1. 为什么要使用拦截器2.拦截器的注册3.创建一个登录拦截器 1. 为什么要使用拦截器 1.权限检查:进入程序判断是否登录,没有登录,直接返回跳转到登录界面 2.性能监控:通过拦截器在进入处理程序之前记录开始时间&#xff…

java家政上门系统源码,一套同城预约、上门服务的家政系统源码

一款同城预约、上门服务的家政系统源码,用户端、服务端、管理端各端相互依赖又相互独立,支持选择项目、选择服务人员的下单方式,支持多城市并且设置每个城市专属服务项目。 技术架构:java1.8springboot mysql htmlThymeleaf uni…

【AI+知识库问答】沉浸式体验了解 AI知识库问答fastGPT

之前写过一篇文章 【AI本地知识库】个人整理的几种常见本地知识库技术方案 , 由于当时主要是针对AI本地知识库, 所以没列fastGPT。 最近经常刷到fastGPT,这里单独水一篇。 FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,…

UML静态图-对象图

概述 静态图包含类图、对象图和包图的主要目的是在系统详细设计阶段,帮助系统设计人员以一种可视化的方式来理解系统的内部结构和代码结构,包括类的细节、类的属性和操作、类的依赖关系和调用关系、类的包和包的依赖关系。 对象图与类图之间的关系&…

centos7 openssh9.7p 制作rpm包

centos7 openssh9.7p 制作rpm包 下载源码包:通过git开源打包源码准备编译打包环境编译打包上传rpm包到需要更新的服务器,并更新 下载源码包: 一般只用ssh源码就可以了 cd /root wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p…

UI线程和工作线程

引用:windows程序员面试指南 工作线程 只处理逻辑的线程,例如:启动一个线程,用来做一个复杂的计算,计算完成之后,此线程就自动退出,这种线程称为工作线程 UI线程 Windows应用程序一般由窗口…

ST - 如何利用SCR轻松驱动AC/DC转换器启动?

过去十年,新装服务器的市场需求增长迅猛,2015到2022年复合年均增长率达到了11%。拉动市场增长的动力主要来自以下几个方面:首先,个人文件无纸化和企业办公数字化进程加快;其次,健康危机期间的居家办公&…

【LeetCode算法】第100题:相同的树

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路:二叉树的先序遍历。采用递归的先序遍历方法,首先访问根节点若不同则返回false,其次访问左子树和右子树。在访问左右子树时,需要注意…

大模型算法办备案全网最详细说明(+附件)

已成功备案产品(近130家,不包括审核中的) 一、大模型算法备案的强制性 二、生成式人工智能(大语言模型)安全评估要点 三、大模型备案必备材料重点说明 四、大模型备案填报流程 五、大模型备案时间成本对比 六、备案建议 附录、过程性材料 一…

977. 有序数组的平方 - 力扣

1. 题目 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 2. 示例 3. 分析 我们当然可以遍历数组平方元素,然后再使用sort排序,但这里时间复杂度就为 O(logN) 了。 我…

uniapp的tooltip功能放到表单laber

在uniapp中,tooltip功能通常是通过view组件的hover-class属性来实现的,而不是直接放在form的label上。hover-class属性可以定义当元素处于hover状态时的样式类,通过这个属性,可以实现一个类似tooltip的效果。 以下是一个简单的例…

【Python】解决Python报错:AttributeError: ‘instance‘ object has no attribute ‘xxx‘

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

把自己的服务器添加到presearch节点

Presearch is a scam. Before, judging by the price of the token you should have been able to get between $150-$200 after 12-13 months of regular searches. "If you use this service for the next 11 years you will have earned $30!" Presearch大约需要…

从零开始:CANDelaStudio之CDD S3 Server时间异常

0 前言 关于CDD制作有疑问的小伙伴可以参考以下文章: 从零开始:CANDelaStudio之CDD制作(一) 从零开始:CANDelaStudio之CDD制作(二) 本文主要对日常在CDD中碰到的一些问题做一个补充。 1 …

C++ 快排算法

今天看到一种清爽的快速算法,复习一下~ 快速排序算法的平均时间复杂度是O(n log n),最坏情况下的时间复杂度是O(n^2)。 快速排序的最佳情况是每次分割都平均分配元素,这种情况下时间复杂度可降至O(n log n)。 快速排序的基本步骤如下&#…

影响生产RAG流水线5大瓶颈

检索增强生成(Retrieval Augmented Generation,RAG)已成为基于大型语言模型的生成式人工智能应用的关键组成部分。其主要目标是通过将通用语言模型与外部信息检索系统集成,增强通用语言模型的能力。这种混合方法旨在解决传统语言模…

惯性动作捕捉与数字人实时交互/运营套装,对高校元宇宙实训室有何作用?

惯性动作捕捉与数字人实时交互/运营套装,可以打破时空限制,通过动捕设备写实数字人软件系统动捕设备系统定制化数字人短视频渲染平台,重塑课程教学方式,开展元宇宙沉浸式体验教学活动和参观交流活动。 写实数字人软件系统内置丰富…