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
我是一个彻头彻尾的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教程
子类中的实例方法具有与超类中的实例方法相同的签名(名称,加上参数的数目和类型)和返回类型,将重写超类的方法。
问题内容: 这个问题已经在这里有了答案 : 接口与抽象类(一般面向对象) (35个答案) 6年前关闭。 最近,我决定看一下Java,因此我仍然对它以及面向对象编程的方法还很陌生,因此我想在学习更多之前弄清楚一些事情((我想从好的实践开始永远不会很快) )。 我现在正在编写一个2D小游戏,但我想我的问题适用于任何非平凡的项目。为简单起见,我将提供游戏示例。 我有不同类型的僵尸,但是它们都有相同的属性
现在,我们知道Java 8在接口中引入了默认和静态方法。 接口最初在Java中引入是为了避免C++中出现的菱形问题,在多重继承中。 但是,随着Java8在接口中引入默认方法,现在,Java也引入了菱形问题,它在以前的版本中避免了这个问题。 默认方法不是必须重写的。 但是当使用接口发生菱形问题时,实现这些接口的类必须重写默认方法。 null PS我在互联网上没有找到任何关于这方面的好文章的链接。 他
问题内容: 在面试中,有人问我以下问题。我试图回答这个问题,但是我想确切回答这个问题。 如果我可以将Abstract类模拟为Interface,为什么Java提供了Interface? 这意味着如果在Abstract类中我可以将所有方法标记为abstract,然后abstract类将用作接口,那么为什么我需要接口。 谁能简单地解释一下我。 问题答案: 这是一个非常标准的面试问题。答案是:因为您可以
问题内容: 考虑一个示例(在Java中编译) 为什么必须将接口“声明”为抽象的?还有其他适用于抽象接口的规则吗? 最后:如果过时了,为什么将它包含在Java中?有抽象接口的历史吗? 问题答案: 为什么必须将接口“声明”为抽象的? 不是。 接口及其方法是隐式的,添加该修饰符没有区别。 还有其他适用于抽象接口的规则吗? 不,适用相同的规则。该方法必须由任何(具体)实现类来实现。 如果抽象已经过时,为什
我想读关于抽象的文章,但读到不同的文章,我感到很困惑。 下面是我无法理解的问题: 1)“抽象是通过使用抽象类和接口实现的吗?”我对此进行了搜索,得到了三种类型的答案: 与此处解释的不同。 它们是相同的,只是不同的观点,就像这里解释的。 最后一个是抽象类用来实现抽象。 哪一个是真的?请举一个简单的例子。 2)“抽象意味着隐藏不必要的细节。比如专注于一个对象做什么而不是它是如何完成的。” 这是正确的吗
抽象类中可以存在非抽象的方法,接口中的方法被默认的变成抽象方法; (2)实现抽象类的方法时,如果方法是抽象的,子类必须重写抽象的方法.如果方法不是抽象的,子类可以选择继承,实现了接口就必须实现接口中的所有方法,因为接口中的方法默认的全部都是抽象的方法;