我试图从类型为interface的对象中调用方法。

    private Car Ferrari;
    Ferrari.startEngine();


Carinterface类,具有称为startEngine()的方法。

我也有一个实现Car的类,我们称它为CarImplementation。因此,当我调用Ferrari.startEngine()时,我假设将调用CarImplementation中的startEngine()

但是,在Eclipse中,在startEngine()下出现一条红线。我收到一条错误消息说


  对于类型Car,未定义方法startEngine()


当我在接口和实现该接口的类中都具有startEngine()时,如何定义未定义?

我还注意到,在Ferrari之后键入点后,我的startEngine()方法未显示在Eclipse的内容帮助中。

有什么建议?

最佳答案

Ferrari不是Car,而是null,直到将其分配给实际对象为止。

Car ferrari = new CarImplementation();
ferrari.startEngine(); // works


(此外,根据Sun Java标准,我将您的对象重命名为ferrari,没有上限)

10-05 21:12