java - 重载被覆盖的方法是重载父类方法还是子类方法

标签 java

在子类中重载被重写的方法,我是在重载父类方法还是子类方法?

我大致了解什么是重载和覆盖。

重载 - 相同的方法不同的参数,可能在同一个类中返回类型。

覆盖 - 在子类中与父类中的方法签名相同但实现不同。

class A {
    public void a() {
        System.out.println("A.a");
    }
}

class B extends A {
    public void a() {
        super.a();
        System.out.println("B.a");
    }

    public void a(int x) {

    }
}

方法 B.a(int x) 是否重载了 A.a 或 B.a?

最佳答案

覆盖继承的东西,因此 B.a() 覆盖 A.a()。重写意味着重新定义。

重载 是指您的类有多个相同方法名称的定义(每个都有不同的参数类型)。在 B 中,名称 a 被重载。有 B.a() 和 B.a(int x)。

一些定义可能是继承的。因此,如果您删除 B.a(),类 B 仍然会有一个方法 a(),因为它是从 A 继承的。并且方法名称 a 仍然会在 B 中重载。

关于java - 重载被覆盖的方法是重载父类方法还是子类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57392041/

相关文章:

java - 如何在 apache Camel (spring) 中测试路由

java - Eclipse - Scenebuilder 无法通过右键单击启动,并且 "Open with scenebuilder"

java - IntelliJ IDEA 在 Maven 工具栏树中两次显示所有 Maven 插件

java - 具有指数条件的大 O/时间复杂度

java - 哪里可以在 Fragment 中创建 Android Spinner?

java - 无法从 JUnit 中的 Spring Boot 读取应用程序属性?

java - 在 Linux 上设置 Closure Compiler 的好方法是什么?或者,Java .jar 在 Linux 上应该放在哪里?

java - 如何获取3个单词的第一个字母?

java - 按对象中的不同参数对 ArrayList 进行排序

c# - 什么时候应该使用链接列表的真实世界示例是什么?