私が持っている場合
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()
Bオブジェクトから呼び出す場合foo(){}
、そのメソッドはオーバーライドされます。
Aオブジェクトから呼び出すとfoo(int a){}
、そのメソッドはオーバーロードされます。
A objA = new A();
objA.foo(10);
//(オーバーロード)
A objAB = new B();
MobjAB.foo();
//(オーバーライド、Aの代わりにBのメソッドが呼び出されます)