我正在尝试实现我自己的File类,它扩展自java.io.File(请不要判断我:-)而我正在尝试通过提供java.io来构建我的类。文件实例如下:
public class File extends java.io.File {
public File (String fileName) {
super(fileName);
}
public File (java.io.File file) {
// the problem
super = file;
}
...
}
我的问题是我想用类似super = file
的东西构建我的类,这显然是一个不正确的表达式。你能建议如何做到这一点吗?
感谢。
答案 0 :(得分:4)
你应该使用构图而不是继承,这里是它的样子
class YourFile{
private final File thatFile;
public YourFile(File file) {
thatFile = file;
}
//getter for thatFile may be here
}
答案 1 :(得分:3)
Super
,与this
一样,不可转让,但您似乎已经知道了。如果我理解正确,你想要复制Ctor。为此,您应该提取io.File
的属性,并使用该数据构建您自己的File
。
或使用组合物作为gasan建议。这个组合的缺点是你不能用你自己的普通java File
类来取代它们。
答案 2 :(得分:1)
怎么样
public File (java.io.File file) {
super(file.getPath());
}