質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

762閲覧

Javaの子クラス内でのconstructorの書き方がわかりません

nonon_infront41

総合スコア11

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/05/12 07:03

編集2019/05/16 12:23

Javaの子クラス内でのconstructorの書き方がわかりません

今JAVAで継承について勉強しています。
問題上でFirstCarが親クラス、SecondCarが子クラスになります。
FirstCarクラスでは4つの変数を使い、SecondCarでは先の4つにもう1つ新しい変数を加えて、

class FirstCar{

ptivate double timetobegin = 0;
private double timetofinish = 0;
private double totalkm = 0;
private double fueleco = 0;

FirstCar(double timetobegin, double timetofinish, double totalkm, double fueleco){ //constructor

this.timetobegin = timetobegin;
this.timetofinish = timetofinish;
this.totalkm = totalkm;
this.fueleco = fueleco;
}

(詳しいfunction省略)
}
class SecondCar extends FirstCar{
private double aircon = 0;

SecondCar(double timetobegin, double timetofinish, double totalkm, double fueleco, double aircon){
super(timetobegin, timetofinish, totalkm, fueleco);
this.aircon = aircon;
}
(function省略)
}

という感じに書いてコンパイルするとエラーメッセージが

クラス SecondCarのコンストラクタ SecondCarは指定された型に適用できません。
super(timeTostart, timeTofinish, totalkm, fueleco);
^
期待値: double,double,double,double,double
検出値: double,double,double,double
理由: 実引数リストと仮引数リストの長さが異なります

と出てしまいます。

かと言って期待値のようにaircon変数はsuperクラスにない変数ですので入れれませんし、どのように書き直せば良いのか、
また、なぜこのようなエラーが出てしまうのか教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/05/12 07:14

コードはマークダウンのcode機能を利用してご提示ください。
m.ts10806

2019/05/12 07:16

また、エラーはそのままコピペしてください>doube
jimbe

2019/05/12 09:37

誤字 ("ptivate") 以外ではコンパイルエラーになりませんでした.
xebme

2019/05/12 11:50

this.air = air; は自己代入。this.air = aircon; {}のずれはないですか。これ以外に public class があるはず。ソースコードの全体を貼り付けてください。
momon-ga

2019/05/13 08:23

とりあえず提示されてるコードとコンパイルエラーのコードが違うので、エラーの出るソースを張ってください。 提示されたコード: super(timetobegin, timetofinish, totalkm, fueleco); コンパイルエラーメッセージ クラス SecondCarのコンストラクタ SecondCarは指定された型に適用できません。 super(timeTostart, timeTofinish, totalkm, fueleco); ソース:timetobegin エラー:timeTostart
nonon_infront41

2019/05/16 12:16

一応エラーコードはterminalからそのままコピペしてきました。また、誤字とair/airconの統一ができてなくて申し訳ありません。ただそれを直しただけではエラーは同じものを出してました。
jimbe

2019/05/16 14:05

とにかく, ご提示のコードと, エラーと表示されているコードは別のようです. 勉強中ということですが, 例えば, SecondCar というクラスを別パッケージでも既に作成していて, ご提示の SecondCar でなく その別パッケージの SecondCar との関係で件のエラーが出ていたりはしないでしょうか.
guest

回答1

0

ベストアンサー

class と constructor に public 修飾子が必要かと思います。

上、確かにまちがってました

以下のコードがソース上に出ていないのでエラーは、別のところではないでしょうか?

super(timeTostart, timeTofinish, totalkm, fueleco);

投稿2019/05/15 01:38

編集2019/05/15 06:42
kamikaze.cappa

総合スコア558

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

swordone

2019/05/15 04:42

それだったら「シンボルが見つかりません」とかの違うエラーになると思う。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問