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

java重写与重载区别

作者:发光男神   发布日期:2026-05-31   浏览:49

// 重载 (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(1, 2)); // 调用 int add(int a, int b)
        System.out.println(calc.add(1.5, 2.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):

    • 子类可以重新定义父类中的方法,条件是方法名、参数列表和返回类型必须完全相同。
    • 使用 @Override 注解可以确保你确实是在重写父类的方法,而不是无意中创建了一个新的方法。
    • 重写方法在运行时根据对象的实际类型来决定调用哪个方法。

上一篇:java中byte类型取值范围

下一篇:java连接mongodb数据库

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

jsonobject.tojavaobje

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

Laravel 中文站