コード:
class TestA {
public void foo(String... strings ) {
System.out.println("TestA::foo");
}
public void bar(String a){
System.out.println("TestA::bar");
}
}
class TestB extends TestA {
public void foo(String strings ) {
System.out.println("TestB::foo");
}
public void bar(String a){
System.out.println("TestB::bar");
}
public static void main(String[] args) {
TestA a = new TestB();
a.foo("foo");
a.bar("bar");
}
}
出力は
TestA::foo
TestB::bar
したがってB::bar
、オーバーライドされB::foo
てオーバーロードされ、関数がオーバーロードされると、参照先のオブジェクトのタイプではなく、参照のデータ型が重要になります。私は正しいですか?