class G {
int x = 5;
}
class H extends G {
int x = 6;
}
public class CovariantTest {
public G getObject() {
System.out.println("g");
return new G();
}
public static void main(String[] args) {
CovariantTest c1 = new SubCovariantTest();
System.out.println(c1.getObject().x);
System.out.println(new H().x);
}
}
class SubCovariantTest extends CovariantTest {
public H getObject() {
System.out.println("h");
return new H();
}
}
h
5
6
顯然,這兩個的println在main方法聲明是不一樣的。從類SubCovariant的getObject方法返回的新H()對象如何分配給G引用?
**你永遠不會得到* 5作爲輸出* 與您發佈的代碼!! ** –
似乎有一個錯字錯誤。某處x應該是5'int x = 5;' – Kartic
謝謝..編輯int x = 5; – rpg