如果我有
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)