2

我如何从第二个和第三个获取子构造函数?由于公共摘要首先不起作用?

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

创建SecondThird对象时,程序员必须使用为该类定义的构造函数之一。

First构造函数将被隐式调用,如果您不使用super. 无需将其抽象化,您可以将其留空或不定义它(Java 将假定没有参数且不执行任何操作的隐式默认构造函数)。

于 2012-11-29T10:22:43.160 回答