前提・実現したいこと
抽象クラスを活用する練習で、下のようにdouble型の配列を設定し、その要素すべての値の合計と平均を求めるプログラムを作っています。
しかしmainメソッドでサブクラス型のオブジェクトを生成しようとすると、「コンストラクターSum(int, int, int)は未定義です」というエラーが出ます。
これはなぜなのでしょうか。また、どうすればエラーが解消するのでしょうか。
よろしくお願いします。
発生している問題・エラーメッセージ
コンストラクターSum(int, int, int)は未定義です
該当のソースコード
package chapter10; public abstract class Calculation { private final double[] dt; protected Calculation(double[] dt) { this.dt = dt; } public abstract double calculate(); public double[] getDt() { return dt; } }
package chapter10; public class Sum extends Calculation{ public Sum(double[] dt) { super(dt); // TODO 自動生成されたコンストラクター・スタブ } public double average() { return calculate()/ getDt().length; } @Override public double calculate() { double sum = 0; for(int i = 0; i < getDt().length; i++) { sum += getDt()[i]; } // TODO 自動生成されたメソッド・スタブ return sum; } }
package chapter10; public class ExecCalculation { public static void main(String[] args) { Sum cal = new Sum(15, 20, 30); // ここで「コンストラクターSum(int, int, int)は未定義です」というエラー」 System.out.println("合計は" + cal.calculate()); System.out.println("平均は" + cal.average()); } }
試したこと
自分では配列の要素数が書かれていないからかもしれないとは予想してみましたが、自信がありません。
double型指定でint型を入れているのは、自動的に変換され問題ないと思うのですが…
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/01 15:00