What's the point of having a constructor in an abstract class in Java?
本问题已经有最佳答案,请猛点这里访问。
如果永远不打算从该类实例化一个对象,那么什么时候使用它的构造函数呢?对不起,如果我表现得无知。我刚刚在我的高中开始了一个关于Java的课程。
因为子类可以使用它。例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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 } } |
您可以在父类中初始化一些内容,所以可能需要在抽象类中使用构造函数。
您的父类或抽象类通过所有子类或子类存储公共变量。这使得将不同的对象(具有相同的父对象)存储到集合(如和arraylist)中变得更容易。它还允许您轻松地操作和对象,而不必担心子类中包含的细节。通过在子类中调用super()来实例化构造函数。
您有一个构造函数,这样子类就可以正确地初始化其父类的状态。
1 2 3 4 5 6 7 8 9 10 11 |
如果没有构造函数,就没有其他方法来初始化