抽象类只能用作由其他类扩展的基类,对吧?抽象类的构造函数可以具有通常的访问修饰符(public,protected和private(供内部使用)).使用哪个protected和哪个public正确的访问修饰符,因为抽象类型似乎表明技术上公共构造函数将受到很大程度的保护?我应该在所有构造函数上使用protected吗?
小智 24
因为抽象类型似乎表明技术上公共构造函数将受到很大程度的保护
这是不正确的.抽象类不能通过调用其构造函数直接实例化,但是,任何具体实现都将继承抽象类的方法和可见性
所以抽象类当然可以有公共构造函数.
实际上,抽象类的构造函数只能从实现的构造函数中调用,因此它在公共或受保护之间没有区别.例如:
public class Scratch
{
public static abstract class A
{
public A( int i ) {}
}
public static class B extends A
{
private B() { super(0); };
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12794 次 |
| 最近记录: |