私は基本的なJavaクラスを次のように定義しています。私は3つの変数を持っています:l、b、hは長さ、幅と高さに対応します。私は基本的にスーパーキーワードを使用してサブクラスからスーパークラスのメンバーにアクセスしようとしています。暗黙的なスーパーコンストラクタは定義されていません
class dabba {
int l, b, h;
dabba(int l, int b, int h) {
this.l = l;
this.b = b;
this.h = h;
}
void dabbashow() {
System.out.println("The variables are length:" + l + " breadth:" + b + " height:" + h + ".");
}
}
私は上記のクラスを拡張する別のクラスを持っています。
class dabbaweight extends dabba {
int w;
dabbaweight(int l, int b, int h, int w) {
// super(l, b, h);
super.l = l;
super.b = b;
super.h = h;
this.w = w;
}
void dabbashow() {
System.out.println("The variables are length:" + l + " breadth:" + b + " height:" + h + " weight:" + w + ".");
}
}
私は別のクラスでmain関数を以下のように提供しました。
public class Rando2 {
public static void main(String[] args) {
dabba mydabba1 = new dabba(1, 2, 3);
dabbaweight mydabba2 = new dabbaweight(10, 20, 30, 100);
mydabba1.dabbashow();
mydabba2.dabbashow();
}
}
そして、次のエラーが発生します。
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Implicit super constructor dabba() is undefined. Must explicitly invoke another constructor
at dabbaweight.<init>(Rando2.java:17)
at Rando2.main(Rando2.java:33)
このエラーは何ですか?これをどうすれば解決できますか? ありがとうございます。
アンコメントこの下記好きな変更次のコード
- '//スーパー(L、B、H);' – Eran
この質問でありますすでに解決されました: [これを参照してください](http://stackoverflow.com/questions/2056097/java-extending-class-with-the-constructor-of-main-class-has-parameter) – FAlfeo
@FAlfeoハイパーリンクされた質問、 私はそれを見る、 "コンストラクタの最初の文は、スーパークラスコンストラクタの呼び出しでなければなりません。 " – kiran