【问题标题】:Class not abstract for Java? Interface Use involvedJava的类不是抽象的?涉及的接口使用
【发布时间】:2012-10-26 03:31:07
【问题描述】:

我正在为家庭作业创建一个程序,该程序使用界面计算火车旅行的成本:

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 接口。我做错了什么?

【问题讨论】:

    标签: java class interface


    【解决方案1】:
    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

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

    【讨论】:

    • 我发誓,它总是很简单。谢谢!
    • @user1768884:是的,很简单。祝你好运。
    猜你喜欢
    • 2011-08-24
    • 2011-05-22
    • 2013-01-30
    • 2011-02-21
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    相关资源
    最近更新 更多