在子类中重载被重写的方法,我是在重载父类方法还是子类方法?
我大致了解什么是重载和覆盖。
重载 - 相同的方法不同的参数,可能在同一个类中返回类型。
覆盖 - 在子类中与父类中的方法签名相同但实现不同。
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/