我正在创建一个家庭作业的程序,它计算出使用界面的火车旅行的费用:
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界面。我做错了什么?
答案 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);
具有相同签名(名称,加上其参数的数量和类型)的子类中的实例方法和作为超类中的实例方法的返回类型将覆盖超类的方法。