代码:
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
重载,当一个函数被重载时,引用的数据类型与它指向的对象的类型无关。我对吗?