プロが教える店舗&オフィスのセキュリティ対策術

下記で作成した継承プログラムで、間違ったプログラムの部分を直しても同じエラーが発生します。どうしたら下記のプログラムがうまく動きますか?

ちなみに同じエラーが発生するのはsuper()の部分で、シンボルが見つからないとのこと.


class Human
{
private double height, weight;
private String name;
private static int count = 0;

public Human()
{
height = 0;
weight = 0;
name = "no name";
}

public void inputData(String na, double ht, double wt)
{
height = ht;
weight = wt;
name = na;
}

public void showValue()
{
count++;
System.out.println("名前: " + name + ", 身長: " + height + "cm, 体重:"+ weight + "kg");
}

public void copyData(Human a)
{
height = a.height;
weight = a.weight;
name = a.name;
}

public double readData(double a)
{
if(a==0){
return height;
}else{
return weight;
}
}

public static int readCount()
{
return count;
}
}


class Sandai extends Human
{
private String number;

public Sandai(String nu, String na, double ht, double wt)
{
super(na, ht, wt);
number = nu;

}
public void showData()
{
System.out.println("学籍番号:"+number+", ");
showValue();
}
}



class Kadai12_3
{
public static void main(String args[])
{
Sandai student = new Sandai("09H099", "Taro", 165.0, 55.0);
student.showData();
}
}

A 回答 (2件)

Sandaiのコンストラクターの中でsuper(na, ht, wt)と書くのは、親クラスであるHumanのコンストラクターを(String, double, double)の3引数で呼ぶことになります。

しかし、Humanには引数を受け取るコンストラクターがありません。これがエラーの原因です。
解決するにはHumanに適切なコンストラクターを追加してください。または、HumanにはinputData()というメソッドがあるのでsuper(na, ht, wt)の代わりにそれを呼べば良さそうです。課題の出題者の意図に沿っているかどうかは質問文からは分かりませんが。
    • good
    • 0

回答は、既に#1さんが、100%、ご提示されています。



「考えることが大っ嫌いやし、…」というのは、若気の至りです。
人間が人間たる所以は、『考える』こと以外の何物でもありません。
『感じ(フィーリング)』では無いのです。


”考える主体としての自己(精神)とその存在を定式化した「我思う、ゆえに我あり」は哲学史上でもっとも有名な命題の1つである。

そしてこの命題は、当時の保守的思想であったスコラ哲学の教えであるところの「信仰」による真理の獲得ではなく、信仰のうちに限定してではあれ、人間の持つ「自然の光(理性)」を用いて真理を探求していこうとする近代哲学の出発点を簡潔に表現している。デカルトが「近代哲学の父」と称される所以である。”


デカルトは、『デカルト革命』とでも呼び得るような、およそ人類が存続する限り、仮に数万年後の世界においても、永遠に人類の歴史に刻まれるほどの、偉大な発想の展観を達成しました。

「考える」ということ、これ以外に、自身の存在を認識し得る『行為』はあり得ない、そう思ってください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!