MST

星途 面试题库

面试题:Java中方法重载与方法重写在参数列表上的区别

请详细阐述在Java中,方法重载和方法重写对于参数列表的要求分别是什么,并举出相应的代码示例。
17.1万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

方法重载(Overloading)对参数列表的要求

  1. 参数数量不同:在同一个类中,两个或多个方法具有相同的方法名,但参数的数量不同。
  2. 参数类型不同:参数数量相同的情况下,参数的类型至少有一个不同。
  3. 参数顺序不同:参数数量和类型都相同,但顺序不同。

示例代码

public class MethodOverloadingExample {
    // 方法重载:参数数量不同
    public void printInfo(int num) {
        System.out.println("整数: " + num);
    }

    public void printInfo(int num, String str) {
        System.out.println("整数: " + num + ", 字符串: " + str);
    }

    // 方法重载:参数类型不同
    public void printInfo(String str) {
        System.out.println("字符串: " + str);
    }

    // 方法重载:参数顺序不同
    public void printInfo(String str, int num) {
        System.out.println("字符串: " + str + ", 整数: " + num);
    }
}

方法重写(Overriding)对参数列表的要求

  1. 参数列表必须完全相同:在子类中重写父类的方法时,重写方法的参数列表(包括参数的数量、类型和顺序)必须与被重写的方法完全一致。

示例代码

class Animal {
    public void makeSound() {
        System.out.println("动物发出声音");
    }
}

class Dog extends Animal {
    // 方法重写
    @Override
    public void makeSound() {
        System.out.println("狗汪汪叫");
    }
}