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

java重写与重载的区别

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

  1. 重写(Override):
    • 重写是指子类重新定义(覆盖)了从父类继承而来的方法。
    • 重写要求子类方法与父类方法具有相同的方法名、参数列表和返回类型。
    • 重写可以修改或扩展父类方法的功能,但不能改变方法的签名。
    • 重写可以利用多态性,在运行时根据对象的实际类型调用对应的方法。

示例代码:

class Animal {public void makeSound() {System.out.println("Animal makes sound");}
}class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("Dog barks");}
}Animal animal = new Dog();
animal.makeSound(); // 输出:"Dog barks"
  1. 重载(Overload):
    • 重载是指在同一个类中,可以定义多个同名但参数列表不同的方法。
    • 重载方法的特点是参数个数、类型或顺序不同。
    • 编译器根据方法的参数列表决定调用哪个重载方法。
    • 重载可以提供更灵活的方法调用方式,方便处理不同情况下的不同逻辑操作。

示例代码:

class Calculator {public int add(int a, int b) {return a + b;}public double add(double a, double b) {return a + b;}
}Calculator calculator = new Calculator();
int result1 = calculator.add(5, 3);          // 调用 int add(int a, int b)
double result2 = calculator.add(2.5, 4.7);   // 调用 double add(double a, double b)

通过重写和重载,可以实现代码的灵活性和可扩展性。重写用于在子类中修改父类方法的行为,实现特定的逻辑;重载用于定义多个相似功能但参数不同的方法,提供更多选择。

http://www.lryc.cn/news/122293.html

相关文章:

  • Unity 框架学习--1
  • ERROR: While executing gem ... (Gem::FilePermissionError)
  • QT学习笔记-oracle oci数据库驱动交叉编译并移植到ARM开发板
  • 微服务03-RabbitMQ
  • QtCreator ui设置界面 Layout 的属性 layoutStretch
  • APP外包开发的iOS开发语言
  • sentinel客户端和dashboard交互
  • vue或uniapp使用pdf.js预览
  • virtualBox桥接模式下openEuler镜像修改IP地址、openEule修改IP地址、openEule设置IP地址
  • git unable to get local issuer certificate (_ssl.c:1007)>
  • QT之时钟
  • 机器学习基础(四)
  • HTML详解连载(5)
  • 【CI/CD】基于 Jenkins+Docker+Git 的简单 CI 流程实践(上)
  • 基于FPGA的PID算法理论详解(1)
  • Neo4j之REMOVE基础
  • SpingBoot-Vue前后端——实现CRUD
  • LeetCode150道面试经典题--最后一个单词的长度(简单)
  • web-xss-dvwa
  • Exploiting Proximity-Aware Tasks for Embodied Social Navigation 论文阅读
  • 【华为OD机试】统计射击比赛成绩【2023 B卷|100分】
  • git push之后的撤销操作
  • CSS 的选择器有哪些种类?分别如何使用?
  • 【MongoDB】索引
  • 机器人CPP编程基础-02变量Variables
  • 【学会动态规划】买卖股票的最佳时机 IV(18)
  • 请解释一下CSS中的rem和em单位有什么不同,分别如何使用?
  • docker 导入镜像 REPOSITORY和tag都是null怎么解决
  • c语言操作符
  • python爬虫5:requests库-案例3