Fra*_*ank 13 java inheritance encapsulation
假设我有一个CSV文件,我创建了一个名为CsvFileextended 的类java.io.File.此类可以解析CSV文件并返回一些数据,例如文件中有多少列.它也可以用于java.io.File作为输入的功能.如F ileUtils.copyFile(File from, File to).
我的同事认为我从继承中暴露了太多.他的想法是将java.io.File它包装在私有财产中,而不是继承它.他认为将所有公共方法/属性从文件中断封装中暴露出来,但我认为它是一个好处,因为我们java.io.File免费获得所有函数.
你怎么看?
das*_*ght 15
我宁愿跟你的同事一致认为:继承java.util.File会暴露那些并不适用于方法CsvFile的对象,如list(),listFiles(),setExecutable(),等.
制作java.util.File一个getter后面的特性听起来像一个更好的选择:它没有透露无关的操作类的用户,并允许您从基类你选择的继承.