1

SeekableByteChannelはインターフェイスであるため 、Files クラスのnewByteChannelメソッドからそのメソッドを呼び出すにはどうすればよいでしょうか。

呼び出す方法は知っていますが、インターフェイスが動作を実装していないため、概念を理解できません

1 つ以上の質問です。Java のサンプル コードで、インターフェイス メソッドが呼び出されたり呼び出されたりするのを何度も見てきました。

SeekableByteChannel idd =  Files.newByteChannel(file);
idd.size();

SeekableByteChannel はインターフェイスであり、 Files クラスは SeekableByteChannel .So のメソッドを実装していないため、上記のコードはどのように機能しますか SeekableByteChannels メソッドが初期化されます。

助けてください

4

2 に答える 2

0

あなたの根底にある質問は、インターフェースがどのように機能するかということです。インターフェイスに関する一般的なバズワードは「契約」です。クラスがインターフェイスを実装する場合、このコントラクトを実装します。コントラクトは、クラスがインターフェースで宣言された関数を定義しなければならないことを意味します。したがって、もし私たちが持っているなら -

Interface InterfaceTest{
    void foo();
}

Class Implementer implements InterfaceTest{

クラスの実装者は関数 foo() を実装する必要があります。そうしないと、コンパイラ エラーが発生します -

void foo(){
    //Do stuff.
}

を実装してFilesないことに注意してくださいSeekableByteChannel。したがって 、それとは何の関係もFilesありません。したがって、問題Filesのない機能を含め、必要な機能をすべて持つことができますSeekableByteChannel

于 2013-06-12T19:47:01.387 に答える