0

タイプが であるオブジェクトからメソッドを呼び出そうとしていますinterface

    private Car Ferrari;
    Ferrari.startEngine();

Carというinterfaceメソッドを持つクラスstartEngine()です。

を実装するクラスもありCarます。それを呼び出しましょうCarImplementation。したがって、 を呼び出すと、 in CarImplementation が呼び出されるとFerrari.startEngine()想定しています。startEngine()

ただし、Eclipse では、 の下に赤い線が表示されstartEngine()ます。そして、私はエラーメッセージを受け取ります

メソッド startEngine() はタイプ Car に対して未定義です

startEngine()インターフェイスとインターフェイスを実装するクラスの両方にある場合、どのように未定義になりますか?

また、Ferrari の後にドットを入力した後、私のstartEngine()メソッドがEclipse のコンテンツ アシストに表示されないことにも気付きました。

助言がありますか?

4

2 に答える 2

2

FerrariではなくCarnull実際のオブジェクトに割り当てるまでです。

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

ferrari(また、 Sun Java 標準に従って、キャップなしでオブジェクトの名前を変更しました)

于 2012-07-27T13:05:30.293 に答える
1

のインスタンスを作成して、そのCarImplementation実装を使用する必要があります。インターフェイスには、定義するメソッドの実装がありません。

したがって、非静的メソッドの場合は、これを試してください。

Private Car ferrari = new CarImplementation();
ferrari.startEngine();
于 2012-07-27T13:01:43.450 に答える