在Java中的抽象类中使用构造函数有什么意义?

时间:2014-10-30 23:08:12

标签: java

如果你永远不会从该类实例化一个对象,你何时会使用它的构造函数?对不起,如果我是无知的。我刚在高中开始上Java课程。

4 个答案:

答案 0 :(得分:1)

你可以在父类中初始化一些东西,所以也许你需要在抽象类中使用构造函数。

答案 1 :(得分:1)

因为子类可以使用它。例如:

public abstract class Foo {
    protected String name;
    public Foo(String name) {
        this.name = name;
    }
}

public class Bar extends Foo {
    public Bar(String name) {
        super(name); //<-- necessary, otherwise it won't compile
    }

    public Bar() {
        super("default name"); // <-- necessary, otherwise it won't compile
    }
}

答案 2 :(得分:0)

您有一个构造函数,因此子类可以正确初始化其父级的状态。

public abstract class Parent {
    private final String name;

    public Parent(String n) { this.name = n; }

    public String getName() { return this.name; }
}

public class Child extends Parent {
    public Child(String name) { super(name); }
}

如果没有构造函数,则没有其他方法可以初始化private final String name 中的Parent属性。

答案 3 :(得分:0)

您的父类或抽象类通过所有子类或子类存储公共变量。 这样可以更容易地将不同的对象(具有相同的父对象)存储到诸如和ArrayList之类的集合中。 它还允许您轻松地操作和对象,而不必担心子类中包含的细节。 您可以通过在子类中调用super()来实例化构造函数。