![](/img/trans.png)
[英]Calling extended's class method from parent class with extended class keeping instances of parent's variables
[英]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.