【发布时间】:2013-01-08 05:58:02
【问题描述】:
代码:
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 被重载,当函数重载时,引用的数据类型与其指向的对象类型无关。我说的对吗?
【问题讨论】: