【发布时间】:2019-06-23 11:02:18
【问题描述】:
我正在学习 Java 中的 OOP,但遇到了一个问题。我需要创建一个自定义对象Folder,它保留了FTPFile 对象的功能并向其添加更多内容。
FTPClient client = new FTPClient();
FTPFile[] folders = client.listFiles();
我需要将数组folders中的所有对象从FTPFile转换为Folder对象,我想在子类的构造函数中设置超类的状态:
public Folder(FTPFile ftpF) {
super.setName(ftpF.getName());
super.setLink(ftpF.getLink());
super.setHardLinkCount(ftpF.getHardLinkCount());
super.setGroup(ftpF.getGroup());
super.setSize(ftpF.getSize());
super.setTimestamp(ftpF.getTimestamp());
super.setType(ftpF.getType());
super.setUser(ftpF.getUser());
}
但我不知道这是否是一个好习惯。我应该这样做还是应该将FTPFile 对象存储为Folder 对象的状态并在需要时调用它的功能?
【问题讨论】:
标签: java apache oop inheritance delegation