[英]Class not abstract for Java? Interface Use involved
我正在创建一个家庭作业的程序,它计算出使用界面的火车旅行的费用:
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)在Train中无法在MassTransit中实现getRoundTripCost(int,int)”
我是一个完整的Java新手,我仍然不熟悉Java接口。 我做错了什么?
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教程
子类中具有相同签名(名称,加上其参数的数量和类型)和返回类型作为超类中的实例方法的实例方法会覆盖超类的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.