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

Java中重写和重载

突然被问到重写和重载,咋一想有点想不起来了

在 Java 中,重写(Override)和重载(Overload)是两个不同的概念。

一、重写(Override)

  1. 定义:
    • 重写是子类对父类中已有的方法进行重新实现,以满足子类的特定需求。
    • 重写的方法必须与父类中被重写的方法具有相同的方法名、参数列表和返回类型。
  2. 规则:
    • 重写的方法不能缩小父类方法的访问权限。例如,父类方法是 public,子类重写的方法不能是 protected 或 private。
    • 重写的方法不能抛出比父类方法更多的异常。
    • 方法名、参数列表和返回类型必须与父类中被重写的方法完全相同。
  3. 示例代码:
class Animal {
    public void makeSound() {
        System.out.println("Animal makes a sound");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Meow");
    }
}

在上面的代码中,Cat类重写了Animal类中的makeSound方法。

二、重载(Overload)

  1. 定义:
    • 重载是在同一个类中,定义多个具有相同方法名但参数列表不同的方法。
    • 这些方法可以有不同的参数类型、参数个数或参数顺序。
  2. 规则:
    • 方法名必须相同。
    • 参数列表必须不同,可以是参数类型、参数个数或参数顺序不同。
    • 返回类型可以相同也可以不同。
  3. 示例代码:
class Calculator {
    public int add(int a, int b) {
        return a + b;
    }

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

在上面的代码中,Calculator类中有两个名为add的方法,它们的参数列表不同,一个接受两个整数参数,另一个接受两个双精度浮点数参数。


http://www.kler.cn/a/304876.html

相关文章:

  • Window下PHP安装最新sg11(php5.3-php8.3)
  • 图片画廊 day2 (可复制源码)
  • WPF学习之路,控件的只读、是否可以、是否可见属性控制
  • 智能电视/盒子的应用管理——通过ADB工具优化体验
  • spring中r类是什么
  • 深度学习之 LSTM
  • c++ 编辑器 和 编译器 的详细解释
  • Ubuntu20-xrdp与Windows-mstsc远程桌面连接
  • C语言-整数和浮点数在内存中的存储-详解-上
  • JavaEE:文件内容操作(一)
  • docker--刚开始学不知道如何操作拉取,或拉取失败(cmd)
  • EmguCV学习笔记 C# 11.5 目标检测
  • 期货量化现在是要比股票量化更适合高频交易,程序化交易
  • 电脑桌面数据误删如何恢复?提供一份实用指南
  • spark sql详解
  • MVC 控制器
  • Qt-QLCDNumber显示类控件(26)
  • 如何简化机器人模型,加速仿真计算与可视化
  • 基于less和scss 循环生成css
  • Java中的高级I/O操作:NIO和AIO的比较
  • 大数据-129 - Flink CEP 详解 Complex Event Processing - 复杂事件处理
  • 哪个虚拟机软件在 Mac 上更好用,Mac 虚拟机会影响性能吗?
  • 计算机网络30——Linux-gdb调试命令makefile
  • [Linux#48][网络] 令牌环网 | IPv4 | socket 套接字 | TCP | UDP | 网络字节序列
  • Pytest配置文件pytest.ini如何编写生成日志文件?
  • AI创意引擎:优化Prompt提示词的高效提问技巧