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

java重载和重写的区别

作者:巅峰战犯   发布日期:2025-03-24   浏览:56

// 示例代码:Java重载和重写

// 定义一个父类 Animal
class Animal {
    // 父类中的方法
    public void makeSound() {
        System.out.println("Animal makes a sound");
    }

    // 重载方法,参数不同
    public void makeSound(String sound) {
        System.out.println("Animal makes a sound: " + sound);
    }
}

// 定义一个子类 Dog,继承自 Animal
class Dog extends Animal {
    // 重写父类的方法
    @Override
    public void makeSound() {
        System.out.println("Dog barks");
    }

    // 重载方法,参数不同
    public void makeSound(int times) {
        for (int i = 0; i < times; i++) {
            System.out.println("Dog barks " + (i + 1) + " time(s)");
        }
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建 Animal 对象
        Animal animal = new Animal();
        animal.makeSound();           // 输出: Animal makes a sound
        animal.makeSound("roar");     // 输出: Animal makes a sound: roar

        // 创建 Dog 对象
        Dog dog = new Dog();
        dog.makeSound();              // 输出: Dog barks
        dog.makeSound(3);             // 输出: Dog barks 1 time(s), Dog barks 2 time(s), Dog barks 3 time(s)

        // 使用父类引用指向子类对象
        Animal myDog = new Dog();
        myDog.makeSound();            // 输出: Dog barks
    }
}

解释说明:

  1. 重载(Overloading)

    • 在同一个类中,可以有多个方法具有相同的名字,但它们的参数列表必须不同(参数的数量、类型或顺序不同)。
    • 例如,在 Animal 类中,有两个 makeSound 方法,一个是无参数的,另一个是带 String 参数的。
  2. 重写(Overriding)

    • 子类可以提供与父类中某个方法相同的实现,即方法名、参数列表和返回类型都相同。
    • 子类的重写方法会覆盖父类的方法。例如,Dog 类重写了 Animal 类中的 makeSound 方法。
  3. 运行时多态

    • 当使用父类引用指向子类对象时,调用的是子类重写后的方法,而不是父类的方法。例如,Animal myDog = new Dog(); 调用 myDog.makeSound() 会输出 Dog barks

上一篇:java自旋锁

下一篇:java使用opencv

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

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

Laravel 中文站