我有一個基類和驅動類(繼承基類)。而我的基礎課也是駕駛課的對象。所以當我調用覆蓋函數時,它會給我正確的結果,通過調用驅動類函數,因爲基類具有驅動類對象。 但是,當我只是從基類對象中打印變量存在於基類和驅動器類(具有相同名稱)時,它會打印基類中存在的變量的值。有沒有辦法可以打印驅動器類變量。Java對象切片混淆
class A
{
int i = 10;
public void func(){
System.out.print("print i : " +i);
}
}
class B extends A
{
int i = 20;
public void func(){
System.out.print("print i : " +i);
}
}
class MainClass
{
public static void main(String[] args)
{
A a = new B();
System.out.println(a.i);
a.func();
}
}
輸出是: -
10
print i : 20
您好@ jeremy-heiler您能否幫我理解一點點..當基類指針能夠調用驅動器類函數時,爲什麼它不能調用變量? –
我不明白你的問題。 – Jeremy
當基類能夠調用驅動類功能時,爲什麼不能打印同名驅動類變量? –