【发布时间】:2021-07-05 18:53:36
【问题描述】:
我必须使用名为Document 的超类和两个子类(DVD 和书)来执行此程序。基本上这两个子类继承了 Document 的属性 + 每个子类的一个或两个特定属性。
这是我的超类:
public class Document {
public String nom;
public int copiesDispo;
public String noRef;
public static int nbDocs;
/*
** Constructor(s)
*/
public Document(String nom, String noRef) {
this.nom = nom;
this.noRef = noRef;
this.copiesDispo = copiesDispo;
nbDocs++;
}
}
这是我目前所拥有的子类书籍:
public class Livre extends Document {
public Livre() {
super();
}
}
虽然这不能编译,但我似乎不能这样做,但我以前在以前的程序中已经这样做过并且没有问题..?这里有什么问题/为什么?这是否意味着我必须将超类抽象化?
【问题讨论】:
-
如果在没有参数的情况下调用 Document 的构造函数,则需要向 Document 添加一个空的构造函数。
-
copiesDispo在Document的构造函数中是未知的;请注意,您不像其他两个那样将其作为参数传递。 -
@Jesper 我也应该将它作为参数传递吗?
-
是的,否则
this.copiesDispo = copiesDispo;不会做任何有用的事情;您可能还想根据参数设置copiesDispo。
标签: java class object subclass superclass