【发布时间】:2019-03-31 17:06:05
【问题描述】:
我正在尝试从 LesEenheid 类继承到 Vak 的子类。但我立即收到一条消息:com.company.LesEenheid 中没有可用的默认构造函数。
package com.company;
public class LesEenheid {
private String naam;
private int ects;
private int studiejaar;
public LesEenheid(String lesNaam, int lesEcts, int lesStudiejaar){
naam = lesNaam;
ects = lesEcts;
studiejaar =lesStudiejaar;
}
public String toString(){
return naam + " " + ects + " " + studiejaar;
}
}
public class Vak extends LesEenheid {
}
【问题讨论】:
-
Java 只会在没有显式构造函数的情况下创建默认构造函数。既然你定义了一个构造函数,你应该定义一个默认构造函数
-
嗯,错误很明显——没有默认构造函数。相反,您有一个带参数的:
public LesEenheid(String lesNaam, int lesEcts, int lesStudiejaar),因此您的子类将不得不调用它。只需在您的子类中创建一个构造函数并在其中调用super(a,b,c,d, etc)