类不是Java的抽象?接口使用涉及

时间:2012-10-26 03:31:07

标签: java class interface

我正在创建一个家庭作业的程序,它计算出使用界面的火车旅行的费用:

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

MassTransit方法

public interface MassTransit {

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


}//end of MassTransit interface

当我尝试编译Train类时,我得到的错误是“Train.java:6:错误:Train不是抽象的,并且不会覆盖MassTransit中的抽象方法getRoundTripCost(int,int)”

火车中的“Train.java:19:错误:getRoundTripCost(int,int)”无法在MassTransit中实现getRoundTripCost(int,int)“

我是一个完整的Java新手,我仍然不熟悉Java界面。我做错了什么?

1 个答案:

答案 0 :(得分: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 tutorial

  

具有相同签名(名称,加上其参数的数量和类型)的子类中的实例方法和作为超类中的实例方法的返回类型将覆盖超类的方法。