MST

星途 面试题库

面试题:Java中Overload与Override的区别 - 基础应用

请编写两个Java类,一个父类和一个子类,在父类中定义一个方法,然后在子类中分别展示方法的Overload和Override情况,并解释代码中体现的Overload与Override的特点。
45.6万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
// 父类
class Parent {
    // 父类中的方法
    public void display(String message) {
        System.out.println("Parent class: " + message);
    }
}

// 子类
class Child extends Parent {
    // 方法重载(Overload)
    public void display(int number) {
        System.out.println("Child class - Overloaded method: " + number);
    }

    // 方法重写(Override)
    @Override
    public void display(String message) {
        System.out.println("Child class - Overridden method: " + message);
    }
}

Overload特点

  • 方法名相同:在同一个类(这里是子类Child)中,display方法名相同。
  • 参数列表不同:一个display方法接受int类型参数,另一个接受String类型参数。参数列表的不同包括参数个数、参数类型或参数顺序不同。
  • 返回类型和访问修饰符:返回类型可以不同,访问修饰符也可以不同,与是否构成重载无关。

Override特点

  • 方法名、参数列表、返回类型相同:子类Child中的display(String message)方法与父类Parent中的display(String message)方法名、参数列表、返回类型完全相同(Java 5.0 后,返回类型可以是父类中被重写方法返回类型的子类型)。
  • 访问修饰符:子类中重写方法的访问修饰符不能比父类中被重写方法的访问修饰符更严格,例如父类方法是public,子类重写方法不能是protectedprivate
  • @Override注解:虽然不是必须的,但使用@Override注解可以帮助编译器检查该方法是否正确地重写了父类方法,如果拼写错误或不符合重写规则,编译器会报错。