• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:java:サブクラスメソッドを呼び出したいです。)

Java: How to Call Subclass Methods

このQ&Aのポイント
  • I want to call the method in the subclass that overrides the abstract class in Java. However, the compilation does not pass.
  • Even if it passes, the command prompt does not return the correct result for the addition of numbers.
  • The UseSam class does not work properly. Can you please help me?

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

まず、コンパイルエラーですが、エラーメッセージをしっかりと読めばすぐに解決できると思いますよ。 下記の箇所で下記の様なコンパイルエラーメッセージが出たかと思います。 AbsSam sum = new Sam(); sum.a = a;  // エラー : 「シンボル: 変数 a  シンボルを見つけられません。」 sum.b = b;  // エラー : 「シンボル: 変数 b  シンボルを見つけられません。」 System.out.println ("計算結果" + sum.add()); // エラー : 「 add(int,int) (test.AbsSam 内) を () に適用できません」 つまり、AbsSam にaやbというフィールドはなく、addメソッドは引数にintを2つ取るはずだから引数無しでは呼び出せません、とコンパイラは行っています。 したがって、修正すると↓のようになります。 AbsSam sum = new Sam(); System.out.println ("計算結果" + sum.add(a, b)); これで期待される動作になりませんか?

参考URL:
http://www.javaroad.jp/java_class5.htm
noname#176788
質問者

お礼

ありがとうございます! sum.a = a; sum.b = b; を外し、 System.out.println ("計算結果" + sum.add(a, b)); 教えて頂いたとおり入力したところ期待する動作が返ってきました! ありがとうございます。 コンパイルエラーの説明とてもわかりやすかったです。

関連するQ&A