Java 从父级构造的扩展类
我正在尝试实现我自己的File类,它是从java.io.File扩展而来的(请不要评判我:-),我正在尝试通过如下给出java.io.File实例来构造我的类:Java 从父级构造的扩展类,java,oop,Java,Oop,我正在尝试实现我自己的File类,它是从java.io.File扩展而来的(请不要评判我:-),我正在尝试通过如下给出java.io.File实例来构造我的类: public class File extends java.io.File { public File (String fileName) { super(fileName); } public File (java.io.File file) { // the prob
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
之类的东西来构造我的类,这显然是一个不正确的表达式。你能建议怎么做吗
谢谢。您应该使用组合而不是继承,下面是它的样子
class YourFile{
private final File thatFile;
public YourFile(File file) {
thatFile = file;
}
//getter for thatFile may be here
}
Super
,比如这个
是不可分配的,但你似乎已经知道了。如果我理解正确,您希望实现复制。为此,您应该提取io.File
的属性,并使用该数据构建自己的文件
或者使用gasan建议的成分。这种组合的缺点是,您不能用自己的类替代常规java文件
类的用法 怎么样
public File (java.io.File file) {
super(file.getPath());
}
你能解释一下你为什么要这么做吗?我们或许可以提出更好的解决方案。super=文件不起作用,因为没有“super”的实例,只有“this”的实例。我想你想要的是一个包装,而不是一个扩展。这不是一个干净的解决方案,但它实现了我想要的。谢谢