0

私は疑問を持っています、以下はのコードですbufferedwriter

BufferedWriter out = new BufferedWriter(new FileWriter(testcasename+".html"));

のコンストラクターは、参照型'Writer'抽象クラスのパラメーターのみを受け入れますが、上記のコードでBufferedWriter''クラスはどのようにインスタンス化されますか?filewriter

4

3 に答える 3

4

よく分からない。

しかし、インスタンスnew FileWriter(pathを作成して拡張し、完全に有効にする)を実行しました。 FileWriterFileWriterWriter

Writerはインターフェースではなく、拡張またはサブクラス化できる抽象クラスなどです。

インターフェイスが実装されています。そして、オブジェクトを作成し、そのオブジェクトへのポインタまたは参照newを返します。参照は、オブジェクトを受け入れるコンストラクター(コンストラクターを特別なメソッドと考えてください)に値によって渡されます。BufferedWriterWriter

私の説明がそれを明らかにしたことを本当に望んでいます。

于 2012-10-23T11:53:06.877 に答える
0

FileWriterは、Writer抽象クラスを拡張するため(直接ではありませんが)、ライターです。したがって、ライターとして扱うことができます。参照してください:

http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html

于 2012-10-23T11:54:28.397 に答える
0

ヒント:子クラスのオブジェクトは親クラスに型キャストできますが、その逆はできません。

上記の場合、クラスWriterのオブジェクトを取得します。これは、クラスWriterを拡張するため有効です。

于 2012-10-23T11:56:32.673 に答える