如果我有
class A
{
void foo(){}
void foo(int a){}
}
class B extends A
{
void foo(){}
}
类 A中的方法foo()会被覆盖和重载吗?
如果我有
class A
{
void foo(){}
void foo(int a){}
}
class B extends A
{
void foo(){}
}
类 A中的方法foo()会被覆盖和重载吗?
是的。它既被重载又被覆盖。
foo
用方法在classA中重载foo(int a)
foo
在 B 类中用方法重写foo()
如果您foo(){}
从 B 对象调用,则该方法将被覆盖。
如果foo(int a){}
从 A 对象调用,则该方法将被重载。
A objA = new A();
objA.foo(10);
//(重载)
A objAB = new B();
MobjAB.foo();
// (重写,将调用 B 的方法而不是 A)