私は(printing a file to a physical printer in Java)私は、使用された各クラスのjavadocから欠けている有用な情報を貪欲にしようとする狂人のようなコードを実行しています。インターフェイスの初期化?
今、私は以前の質問からこのコードのかなりの部分を引っ張ってきたので、私は自分自身を書きませんでした。私が気づいた問題は、オブジェクトを初期化することで、インターフェイス(Doc)を実装し、それをそのインターフェイスに割り当てる "SimpleDoc"と言ったコードを取得したことです。
リトルコードスニペット:
Doc mydoc = new SimpleDoc(textStream, flavor, null);
は、今まで私はJavaで理解するために導かれたとして、我々は、オブジェクトを作成します。私は継承に精通しており、クラスが複数のスーパークラスを「継承」できるようにするためにインターフェイスを使用するというトリックに精通しています。
しかし、これは正しいことではありません。インターフェイスを実装するクラスを作成することができます。しかし、ここでは、インターフェイスが作成され、オブジェクトがそのインターフェイスに縮小されるときに何が起こっていますか? mydocを正確に参照すると、私は何にアクセスしていますか?
mydocは、 'Doc'インタフェースを実装するオブジェクトへの参照です。この状況では、インタフェースは、mydoc参照変数を介して呼び出すことができるメソッドを識別するために使用されます。変数(mydoc)は依然としてオブジェクトへの参照であることに注意してください。 – DwB