2

2番目と3番目からサブコンストラクターを取得するにはどうすればよいですか? パブリックアブストラクトが最初に機能しないので?

public abstract class First {

    public Point position;

    public First() {}  //how do i make this constructor like an abstract?
                      // so that it will go get Second constructor or Third
}

public class Second extends First {

    public Second (Point x) {
        position = x;
    }
}

public class Third extends First {

    public Third(Point x) {
        position = x;
    }
}
4

2 に答える 2

3

Java では、抽象クラスから派生した具象クラスのコンストラクターに抽象クラス内からアクセスすることはできません。ただし、具象クラスからスーパー クラス (抽象クラス) コンストラクターを呼び出すことはできます。

public abstract class First{

    public Point position;

    public Plant(Point x) {
      this.position = x;
    }
}

public class Second extends First {

    public Second(Point x) {
        super(x);
    }
}
于 2012-11-29T10:23:16.017 に答える
1

Secondまたは Thirdオブジェクトを作成するとき、プログラマーはそのクラスに定義されたコンストラクターの 1 つを使用する必要があります。

Firstを使用して明示的に行わない場合、コンストラクターは暗黙的に呼び出されますsuper。抽象化する必要はありません。空のままにするか、定義しなくてもかまいません (Java は、引数を持たず、アクションを実行しない暗黙のデフォルト コンストラクターを想定します)。

于 2012-11-29T10:22:43.160 に答える