【问题标题】:cannot reference publicationDate before supertype constructor has been called在调用超类型构造函数之前不能引用publicationDate
【发布时间】:2014-01-12 21:53:39
【问题描述】:

我在使用从可发布接口类扩展的发布抽象类扩展的这本书类时遇到问题。但是,当我尝试编译它时,会出现错误消息“在调用超类型构造函数之前无法引用发布日期”

这是我的 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);
   }
}

【问题讨论】:

    标签: java reference supertype


    【解决方案1】:

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

    你的意思是有

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

    ?换句话说,您没有使用构造函数参数,而是使用了父类的字段。

    【讨论】:

    • 我尝试将这些添加到末尾,但它又出现了另一条错误消息:“类发布中的构造函数发布不能应用于提供类型”
    • @user3188359 你认为这意味着什么?您正在调用构造函数。您必须传递与该构造函数的参数列表匹配的参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 2019-01-24
    • 1970-01-01
    相关资源
    最近更新 更多