gpt4 book ai didi

java - 继承会破坏封装吗?

转载 作者:搜寻专家 更新时间:2023-10-30 19:54:40 24 4
gpt4 key购买 nike

假设我有一个 CSV 文件,我创建了一个名为 CsvFile 的类,该类扩展自 java.io.File。此类可以解析 CSV 文件并返回一些数据,例如文件中有多少列。它也可以用于将 java.io.File 作为输入的函数。像 FileUtils.copyFile(File from, File to)

我的同事认为我从继承中暴露了太多。他的想法是通过将 java.io.File 保存在私有(private)属性中来包装它,而不是继承它。他认为从文件中公开所有公共(public)方法/属性会破坏封装,但我认为这是一个好处,因为我们可以免费获得 java.io.File 中的所有函数。

你怎么看?

最佳答案

我宁愿同意你同事的观点:继承 java.util.File 会暴露不适用于 CsvFile 对象的方法,例如 list() listFiles()setExecutable() 等。

java.util.File 成为 getter 后面的属性听起来是一个更好的选择:它不会向类的用户透露不相关的操作,并让您从类的基类继承选择。

关于java - 继承会破坏封装吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11217999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com