Java 如何扩展apache FTPFile的功能?

Java 如何扩展apache FTPFile的功能?,java,apache,oop,inheritance,delegation,Java,Apache,Oop,Inheritance,Delegation,我正在用Java学习OOP,我遇到了一个问题。我需要创建一个自定义对象文件夹,该文件夹保留FTPFile对象的功能,并向其添加更多内容 FTPClient client=new FTPClient(); FTPFile[]folders=client.listFiles(); 我需要将数组文件夹中的所有对象从FTPFile转换为文件夹对象,我考虑在子类的构造函数中设置超类的状态: 公用文件夹(FTPFile ftpF){ super.setName(ftpF.getName()); super

我正在用Java学习OOP,我遇到了一个问题。我需要创建一个自定义对象
文件夹
,该文件夹保留
FTPFile
对象的功能,并向其添加更多内容

FTPClient client=new FTPClient();
FTPFile[]folders=client.listFiles();
我需要将数组
文件夹
中的所有对象从
FTPFile
转换为
文件夹
对象,我考虑在子类的构造函数中设置超类的状态:

公用文件夹(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
对象存储在
文件夹
对象的状态中,并在需要时调用其功能?

或者我应该以文件夹对象的状态存储FTPFile对象,并在需要时调用其功能

你突然想到了这个主意。这是一种非常灵活的扩展类功能的方法,无需继承它

例子
类文件夹{
私人文件;
公共FTPFile(FTPFile FTPFile){
this.ftpFile=ftpFile;
}
//更多代码。。
}
假设您想要扩展
FTPFile
的方法
setName(string)
,并且所有名称都应该是大写的:

public void集合名(字符串名){
字符串uppercaseName=name.toUppercase();
//使用大写名称委派任务
ftpFile.setName(大写名称);
}