嗨,大家好,我在一個問題集中遇到了一個「擴展」問題,我正在處理一個問題集 - 我想我只是有一個塊,因爲它被寫有目的地混淆。這裏是因爲我得到了它的問題:Java - 擴展問題
class A {
int x;
A(int a) {System.out.println(" class A");}
}
class B extends A {
int x;
B() {System.out.println(" class B");}
public static void main (String [] args) {
A a = new B();
}
}
當我編譯,我得到以下錯誤從控制檯踢出:
cannot find symbol
symbol : constructor A()
location: class A
B() {System.out.println(" class B");}
^
,我應該能夠解決這個錯誤在B班沒有觸及A班。我明顯錯過了一些顯而易見的東西,但我已經嘗試了一小時所能想到的一切排列,沒有任何工作。
到目前爲止,我已經試過:
- 在B()的前投擲無效 - 相同的錯誤。
- 將B()轉換爲A(int a) - 後者返回一個無效的方法聲明錯誤(在它前面添加一個void將我踢回原始的「找不到符號」錯誤)
- making B ()B(int a) - 同樣的錯誤,加上拋出額外的「無法找到符號」的錯誤,因爲我現在已經拋出了B()聲明。
- 使B類擴展到B類擴展A(int A) - 拋出9個錯誤。顯然不是答案。
- 將A的類名更改爲Apple只是爲了查看是否會給我一個答案 - 這要求我在Apple類的A(int a)前添加一個void,這是我無法做到的。
我到底在想什麼?這不完全是一個高級班,所以它不會是非常複雜的任何事情,但這使我完全瘋了。任何幫助將不勝感激。
你打我45秒:) – 2010-12-06 03:23:42
啊 - 我記得我試過這樣做超(a),它扔一個錯誤,可能是因爲我實際上並沒有定義一個。謝謝! – BigE 2010-12-06 03:27:57
@BigE:請點擊左側旁邊的複選框標記爲正確答案。謝謝。 – Asaph 2010-12-06 05:20:23