2015-09-21 48 views
1

我是新來的,所以我的一些格式可能很奇怪。Java - 超級通話問題

我在調用超級構造函數時遇到了一些麻煩。每當我編譯我的亞軍班,我收到一些錯誤:

.class expected" or "; expected 

這是怎麼回事?

(代碼)

enter image description here

(編譯器輸出)

enter image description here

+2

你能發佈您的代碼? – Michael

+0

它說我需要10個聲望才能發佈圖片... – codeindreams

+1

不是您的代碼 –

回答

3

你需要打電話給你的超級構造是這樣的:

super(y,m,d); 

當然,這其中,求這三個值從何而來的問題。也許你想三個參數添加到您自己的構造函數:

public DateDriver(int y, int m, int d){ 
    super(y,m,d); 
} 

但是:爲什麼你要在第一時間延長Date

+0

因此,我正在處理的項目要求創建一個驅動程序類以擴展到名爲Date的文件。這就是我所有的方法和東西。在Date類中,我分配了三個變量:int year,int month和int day。 – codeindreams

+0

所以你有一些'日期。java'建立在?然後你需要小心地保持它不同於'java.util.Date'(我認爲這是在你導入它時使用的)。 – Thilo

+0

但請仔細檢查。通常一個「驅動程序」會創建並執行一個類的實例,但不會對其進行子類化。 – Thilo

1

不能申報super()調用的參數部分內部變量;

也許你需要的是:

public DateDriver(int y, int m, int d) { 
    super(y, m, d); 
} 

然後,當你構建你的main()方法DateDriver對象,你在值傳遞爲ymd

0

super(int x, int x, int d);沒有意義。看起來你正在試圖在你傳遞它們的時候聲明它們?如果存在日期構造函數有三個參數int,那麼你必須重載一個......不是無參數的構造函數:

public DateDriver(int y, int m, int d) { 
    super(y, m, d); 
} 
0

正確的語法是

DateDriver() 
{ 
    super(x, y, z); 
    /* other code */ 
} 

始終保持第一線用於構造函數調用。如果你想使構造函數鏈接,或者你想調用父類的構造函數。

例如:

//for constructor chaining 
DateDriver() 
{ 
    this(x, y, z); 
} 
// for super call 
DateDriver() 
{ 
    this(x, y, z); 
}