繁体   English   中英

从父级构造的扩展类

[英]Extended class constructed from the parent

我正在尝试实现我自己的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 problem
        super = file;
    }
    ...
}

我的问题是我想用类似super = file类构造我的类,这显然是一个不正确的表达式。 您能建议如何做到吗?

谢谢。

您应该使用合成而不是继承,这是它的外观

class YourFile{
  private final File thatFile;
  public YourFile(File file) {
    thatFile = file;
  }
//getter for thatFile may be here
}

this Super是不可分配的,但是您似乎已经知道了。 如果我对您的理解正确,则希望获得副本Ctor。 为此,您应该提取io.File的属性,并使用该数据构造自己的File

或使用建议的成分作为gasan。 组合的缺点是您不能用自己的常规Java File类替代用法。

怎么样

public File (java.io.File file) {
    super(file.getPath());
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM