如果你永远不会从该类实例化一个对象,你何时会使用它的构造函数?对不起,如果我是无知的。我刚在高中开始上Java课程。
答案 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()来实例化构造函数。