从父级构造的扩展类

时间:2012-03-02 13:18:54

标签: java oop

我正在尝试实现我自己的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的东西构建我的类,这显然是一个不正确的表达式。你能建议如何做到这一点吗?

感谢。

3 个答案:

答案 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());
}