通过直接调用abstract类的构造函数来创建对象是不可能的.abstract只能从派生类中调用类的构造函数.因此,在我看来,抽象类的构造函数必须是或者是protected私有的(后者用于限制将构造函数用于包中的派生类的异常情况).然而,Java允许abstract类的构造函数public.
有没有在它是任何情况下有用申报的构造函数abstract的类要public,而不是protected或包专用?
这与" 抽象类构造函数访问修饰符 " 这个问题并不完全相同:显然你可以声明一个构造函数public; 我想知道是否有过任何好的理由这样做.在我看来,没有.我看到C#具有类似的特性.
这个问题出于好奇.是否有区别:
public abstract class MyClass
{
public MyClass()
{
}
}
Run Code Online (Sandbox Code Playgroud)
和
public abstract class MyClass
{
protected MyClass()
{
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.