1

如果我有

class A
{
 void foo(){}
 void foo(int a){}
}

class B extends A
{
 void foo(){}
}

类 A中的方法foo()会被覆盖和重载吗?

4

3 回答 3

7

是的。它既被重载又被覆盖。

foo用方法在classA中重载foo(int a)

foo在 B 类中用方法重写foo()

于 2012-10-18T04:43:43.773 回答
2

如果您foo(){}从 B 对象调用,则该方法将被覆盖。
如果foo(int a){}从 A 对象调用,则该方法将被重载。

于 2012-10-18T04:47:28.043 回答
2

A objA = new A();
objA.foo(10);//(重载)

A objAB = new B();
MobjAB.foo();// (重写,将调用 B 的方法而不是 A)

于 2012-10-18T04:59:04.097 回答