重载重载方法是重载父类还是子类方法

Prz*_*cki 5 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) {

    }
}

Run Code Online (Sandbox Code Playgroud)

方法 Ba(int x) 是重载 Aa 还是 Ba?

小智 3

您重写了继承的内容,因此 Ba() 重写了 Aa()。覆盖意味着重新定义。

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

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