0

インターフェイスを使用して電車の旅の費用を計算する宿題のプログラムを作成しています。

Train Class:

public class Train implements MassTransit {



public void getCapacity() {

    int capacity = 100;



}//end get Capacity


public int getRoundTripCost(int leave, int return_time){
    int cost = 0;
    cost = (return_time - leave) * 100;
    return cost;


} //end getRoundtrip

public static void main(String[] args) {

    Train train = new Train();
    train.getRoundTripCost(20,25);


}//end of main method



}//end train class

そしてマストランジット方式

public interface MassTransit {

public void getCapacity();
public void getRoundTripCost(int leave, int return_time);


}//end of MassTransit interface

Train クラスをコンパイルしようとすると、次のエラーが表示されます。

「Train.java:19: エラー: Train の getRoundTripCost(int,int) は、MassTransit で getRoundTripCost(int,int) を実装できません」

私はまったくの Java 初心者で、まだ Java インターフェースに慣れていません。私は何を間違えましたか?

4

1 に答える 1

2
public int getRoundTripCost(int leave, int return_time){
    int cost = 0;
    cost = (return_time - leave) * 100;
    return cost;


} //end getRoundtrip

上記のオーバーライドされたメソッドの戻り値の型は ではありvoidませんint。戻り値の型を持つインターフェイスで定義されたメソッドvoid

public void getRoundTripCost(int leave, int return_time);

Javaチュートリアルに従って

スーパークラスのインスタンス メソッドと同じシグネチャ (名前とそのパラメータの数と型) と戻り値の型を持つサブクラスのインスタンス メソッドは、スーパークラスのメソッドをオーバーライドします。

于 2012-10-26T03:32:53.900 に答える