0

私が問題を抱えているコードは次のとおりです。

インターフェース:

public interface anInterface {

    void printSomething();

}

インターフェイスを実装するクラス:

public class aClass implements anInterface {

    public aClass() {

    }

    public void printSomethingElse() {
         System.out.println("Something else");
    }

    @Override
    public void printSomething() {
        System.out.println("Something");
    }
}

そして主な機能:

public static void main(String[] args) {
     anInterface object = new aClass();
     object.printSomething();   // works fine
     object.printSomethingElse();     // error
}

エラー: シンボルが見つかりません。シンボル: メソッド printSomethingElse();

なぜこれがうまくいかないのか誰か教えてもらえますか?

Java で、何らかのインターフェースを実装するクラスがある場合、それらのメソッドがインターフェースで宣言されていなくても、そのクラスにメソッドを追加することは可能ですか? または、インターフェイスで使用するすべてのメソッドを宣言する必要がありますか?

私もC#で試しましたが、どちらもうまくいきません。

私は何を間違っていますか?

ありがとう!!!

4

1 に答える 1

3

その場合に使用するすべてのメソッドをインターフェイスで宣言する必要があります。インターフェイスは printSomethingElse について何も認識していないため、上記のエラーが発生しています。

インターフェイスの目的は、実装された類似の複数のクラスにわたって共通の関数リストを作成できるようにすることです。たとえばList、さまざまなクラスによってさまざまな方法で実装された関数の「リスト」を含むインターフェイスです。たとえば、LinkedList二重リンク リストを使用して機能を提供ListArrayList、動的に拡張する配列を使用して機能を提供します。

于 2012-04-09T02:22:32.560 に答える