一个抽象类只能作为基类被其他类扩展,对吧?抽象类的构造函数可以具有通常的访问修饰符(public、protected 和 private(供内部使用))。 protected
和 public
中的哪一个是正确的访问修饰符,因为抽象类型似乎表明从技术上讲公共(public)构造函数将非常 protected ?我应该只在所有构造函数上使用 protected 吗?
最佳答案
since the abstract type seems to indicate that technically a public constructor will act very much protected
这是不正确的。抽象类不能通过调用其构造函数直接实例化,但是,任何具体实现都会继承抽象类的方法和可见性
所以抽象类当然可以有公共(public)构造函数。
实际上,抽象类的构造函数只能从实现的构造函数中调用,所以它是public还是protected没有区别。例如:
public class Scratch
{
public static abstract class A
{
public A( int i ) {}
}
public static class B extends A
{
private B() { super(0); };
}
}
关于java - 抽象类构造函数访问修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/260744/