在调用超类型构造函数之前,不能引用publicationDate

时间:2014-01-12 21:53:40

标签: java reference supertype

我在从可发布的接口类扩展的发布抽象类扩展的本书类中遇到了麻烦。但是当我尝试编译它时会显示错误消息“在调用超类型构造函数之前无法引用publicationDate”

这是我的Book类代码:

public abstract class Book extends Publication
{
   /**
    * Set the attributes inherited from the publication class 
    */
   public Book (String publicationDateIn, boolean subscriptionIn, String subscriptionLengthIn, int pageNumbIn,
                String publisherNameIn, String publicationTitleIn, float priceIn, String publicationTypeIn, String issnNumbIn
                , int authorNumbIn)
   {
        super (publicationDate, subscription, pageNumb, publisherName, publicationTitle, price, publicationType, subscriptionLength, authorNumb, issnNumb);
   }
}

1 个答案:

答案 0 :(得分:2)

我假设您的Publication班级有一个publicationDate字段(以及您拥有的所有其他字段)。在调用super构造函数之前,您无法在子类型构造函数中引用该字段。

你的意思是

super (publicationDateIn, subscriptionIn, pageNumbIn, publisherNameIn, publicationTitleIn, priceIn, publicationTypeIn, subscriptionLengthIn, authorNumbIn, issnNumbIn);

?换句话说,您没有使用构造函数参数,而是使用父类'fields。