这是我更新的代码:
package car1;
public class Main {
public static void main(String [] args){
类HondaCivic实现了car1 {
int speed = 0;
int rpm = 0;
int gear = 1;
public void speedUp(int Increment) {
speed = speed + Increment;}
public void applyBrakes(int Decrement) {
speed = speed - Decrement;}
public void changeRpm(int NewValue) {
rpm = NewValue;}
public void changeGear(int NewValue) {
gear = NewValue;}
public void printStates() {
System.out.println("speed:"+speed+" rpm:"+rpm+" gear:"+gear);}
}
class CarDemo{
public void main(String[] args) {
// Two different Cars
HondaCivic car1 = new HondaCivic();
HondaCivic car2 = new HondaCivic();
// Methods for cars
car1.speedUp(30);
car1.changeGear(3);
car1.changeRpm(3000);
car1.applyBrakes(15);
car1.printStates();
car2.speedUp(30);
car2.changeGear(3);
car2.changeRpm(2000);
car2.applyBrakes(15);
car2.speedUp(5);
car2.changeGear(1);
car2.printStates();
}
} } }
应用程序不会显示输出。我不知道该怎么做。有什么建议吗?
答案 0 :(得分:3)
Class
与class
不同。
答案 1 :(得分:1)
Java区分大小写:
Class HondaCivic implements Car {
与法律语法不同:
class HondaCivic implements Car {
答案 2 :(得分:1)
接口需要从其父级实现所有方法。您正在实施除
之外的所有内容printStates()
另外,检查类声明的区分大小写。
编辑:nvm未声明为抽象
答案 3 :(得分:0)
我可以发现一些问题,其中一些可能已经修复过:
Class
在第二个类的定义中需要class
(小写)。Car
不是界面,因此您必须extend
而不是实现它。HondaCivic
不是抽象的或接口,因此它必须为每个方法都有方法体;或者,将方法保留在HondaCivic之外,在这种情况下,将使用Car
的方法。在你当前的类布局中,如果制作一个Honda Civic对象而不是一个类,它会更有意义,因为它没有新的功能:
Car hondaCivic = new Car();
答案 4 :(得分:0)
你的代码有很多问题。
首先让Car成为interface Car
第二个将所有代码从HondaCivic
移动到Car
,将所有代码从Car
移动到HondaCivic
,即交换代码,因为接口只能有方法声明和变量而不是实施。实现接口的类需要提供所有这些方法的实现。
最后在main方法中编写此代码而不是制作Car
实例所用的代码Car car1 = new HondaCivic();
Car car2 = new HondaCivic();
然后它将编译并运行。