Jin*_*won 5 java api constructor protected abstract
此问题是FilterInputStream / FilterOutputStream的空源的以下问题
这个问题可能与受保护vs公共构造函数的抽象类重复吗?有区别吗?(C#)
我发现FilterInputStream是这样设计的。
public class FilterInputStream extends InputStream { // concrete
protected FilterInputStream(InputStream in) { // protected
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果代码是
public abstract class FilterInputStream extends InputStream { // abstract
public FilterInputStream(InputStream in) { // public
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
主要区别在于,第一个类可以实例化,而第二个类不能实例化,因为它是抽象的。
受保护的构造函数可以由子类或同一包中的类调用。
因此,包中的任何类都java.io
可以调用new FilterInputStream()
,而其他包中的类则不能执行此操作。
另外问题是对于第一种情况,类中是否可能还有其他构造函数?
因此,从继承来看,除了使用同一包中的类之外,没有真正的区别。
归档时间: |
|
查看次数: |
1584 次 |
最近记录: |