为什么FilterInputStream和FilterOutputStream在其构造函数中具有不同的访问修饰符?

时间:2015-08-27 04:58:19

标签: java io

我刚发现FilterInputStream(InputStream)与[{3}}

protected

具有不同的访问修饰符(public

这有什么技术原因吗?

1 个答案:

答案 0 :(得分:3)

这是一个好地方。设计人员在定义Java API时犯了一些错误,这种不一致似乎就是其中之一。您没有理由直接实例化FilterOutputStream,因此应首选定义具有受保护可见性的构造函数。

您可能会问的另一个问题是为什么这些类不是抽象的。这种方式没有技术上的原因,只是它的设计方式。