Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java中重载和重写的区别

作者:Angel★狂龙   发布日期:2025-12-18   浏览:75

// 重载 (Overloading)
class Calculator {
    // 方法重载:方法名相同,参数列表不同
    int add(int a, int b) {
        return a + b;
    }

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

    // 不同的参数数量
    int add(int a, int b, int c) {
        return a + b + c;
    }
}

// 重写 (Overriding)
class Animal {
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    // 方法重写:子类中重新定义父类的方法
    @Override
    void sound() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        // 测试重载
        Calculator calc = new Calculator();
        System.out.println(calc.add(2, 3)); // 调用 int add(int a, int b)
        System.out.println(calc.add(2.5, 3.5)); // 调用 double add(double a, double b)
        System.out.println(calc.add(1, 2, 3)); // 调用 int add(int a, int b, int c)

        // 测试重写
        Animal myDog = new Dog();
        myDog.sound(); // 输出 "Dog barks"
    }
}

解释说明:

  1. 重载 (Overloading):

    • 发生在同一类中。
    • 方法名相同,但参数列表不同(参数类型、参数数量或参数顺序不同)。
    • 编译时决定调用哪个方法。
  2. 重写 (Overriding):

    • 发生在继承关系中,子类重写父类的方法。
    • 方法名、返回类型和参数列表必须完全相同。
    • 运行时根据对象的实际类型决定调用哪个方法。

上一篇:java jmx

下一篇:java break continue区别

大家都在看

java判断是windows还是linux

java连接数据库的代码

java djl

ubuntu 卸载java

es java api

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站