2016-06-21 15 views
-3

クラスEを使用してクラスTest1を拡張しようとしていますが、メッセージを表示したいだけです。単純なJavaコードでエラーを修正してください

class Test1 
{ 
public static void main(String[] args) 
{ 
    E e = new E(); 
} 
} 
class E extends Test1 
{ 
    System.out.println("Hello World!"); 
} 

私はこれらのエラーを取得:

Test1.java:10: <identifier> expected 
     System.out.println("Hello World!"); 
         ^
Test1.java:10: illegal start of type 
     System.out.println("Hello World!"); 
         ^
2 errors 
+0

あなたはそのエラーが何を意味するのか知っていますかをブロックする必要がありますか?あなたはこの問題を解決するためにどのような努力をしましたか? – kosa

+0

クラスEは、Test1のを拡張 {公共E(){System.out.printlnは ( "Hello Worldの!");}} 彼の出力は、あなたがコードを持つことができません – SMA

+3

@PeterRader号クラスでただ寝るだけです。それはブロックの中になければならない。 – Li357

答えて

2

あなたのEクラスにはコンストラクタがありません。

class Test1 
{ 
public static void main(String[] args) 
{ 
    E e = new E(); 
} 
} 
class E extends Test1 
{ 
    public E(){ 
    System.out.println("Hello World!"); 
    } 
} 

OR クラスEは、イン​​スタンスが

class Test1 { 
    public static void main(String[] args) { 
     E e = new E(); 
    } 
} 
class E extends Test1 { 
    { 
    System.out.println("Hello World!"); 
    } 
} 
+4

実際には、中括弧が1つだけ欠落しています。 –

+1

@MarkoTopolnik Markoによると、ちょうど1組のブレースが必要です。デフォルトのコンストラクタはコンパイラによって追加されます – Li357

+0

@MarkoTopolnikこれは、クラス内のすべてのコンストラクタにコードを追加する副作用を伴います。彼らがcustructorsを追加すると、おそらく予期しないことになります。 – 4castle

関連する問題