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:6: error: Train is not abstract and does not override abstract method getRoundTripCost(int,int) in MassTransit”

“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 回答