-5

例えば:

public class example {
    public class A {
            public void speak() {
                    System.out.println("Hello!");
            }
  }

    public class B extends A {
            public void response() {
                    System.out.println("How are you?");
            }
  }

    public class C extends A {
            public void responseTwo() {
                    System.out.println("Good!");
  }
}

A test1 = 新しい A(); // 合法です。

A test2 = 新しい B(); // それも合法です。

B test3 = 新しい C(); // 合法ではありません。何故ですか?

4

5 に答える 5

1

そのクラスの宣言は正しいです。ファイル内で複数のパブリック クラスを宣言することはできませんが、他のクラス内でパブリック クラスを宣言することはできます。ただし、宣言されているクラスでのみ使用できます。

B と C は異なるクラスであるため、これは不正です。見る:

A test1 = new A(); // it's legal.

A test2 = new B(); // it's also legal.

B test3 = new C(); // not legal. Why is that?**

タイプ C のオブジェクトをタイプ B の変数に代入しています。それらは親/子クラスではなく「兄弟」です。

できるよ:

A test = new C();

クラス階層は次のようになります。

    A
----|----
|       |
B       C
于 2013-10-03T18:57:46.857 に答える
0

これらのクラスはすべて独自の「ファイル」を持つ必要があります

基本的に新しいクラスを作成しているEclipseを使用していますか。

あなたが私たちと共有していない情報がない限り。

複数のクラスを同じ「ファイル」(クラスファイル)に入れることはできません

プログラムに含めるクラスごとに個別のクラス ファイルを作成する必要があります。

于 2013-10-03T14:34:15.293 に答える