我是一个相当新的Java,并且正在使用继承的项目。现在有三种不同的类 - 顶级Car
级,中级CarPart
级,以及继承CarPart类的较低级Engine
类。我想让Engine类仅仅表示组件行为/状态。我希望CarPart类是通用的 - 以处理多个不同的部分(现在我只有引擎设置)。现在,我希望代表汽车部件(比如引擎)的每个类都从一个名为“CarPart”的超类继承。 CarPart类将具有所有类型汽车零件共享的所有状态和行为(如条件和打印诊断报告的能力)。在java中使用继承的类
下面是我的车类,我希望能够创建零件对象
public class Car {
Engine engine;
public Car() {
engine = new Engine();
}
public void run() {
this.engine.printStatus();
}
}
下面是我想成为通用于所有类型的汽车零件和现在我只想我的CarPart类打印零件的状态。
public class CarPart {
private Object object;
public String printState(Object object) {
System.out.println("The status is "+object.getState());
}
}
下面是我的引擎类的代码:
public class Engine extends CarPart{
private String state;
public String getState() {
if(!state.equals(null)) {
System.out.println("The engine is "+state);
} else {
this.state = "off";
System.out.println("The engine is off");
}
return state;
}
public void setState(String engineState) {
this.state = engineState;
}
}
我认为这个问题有向下转换并没有获得在子类中的方法父类的事 - 但我不知道如何去正确打印状态报告。任何意见将不胜感激!
'公共字符串printState(Object对象)'所以,你可以打印任何对象(字符串,整数,ArrayList中,John3136sSuperDuperSwissArmyKnifeClassOfPain)的状态? – John3136
@ John3136对不起,忘了补充一点。不,我不知道如何从CarPart打印任何对象的状态。我得到的错误“getState()未定义类型对象” – kdubs
CarPart和引擎应该有构造函数。 –