私は疑問を持っています、以下はのコードですbufferedwriter
BufferedWriter out = new BufferedWriter(new FileWriter(testcasename+".html"));
のコンストラクターは、参照型'Writer'抽象クラスのパラメーターのみを受け入れますが、上記のコードでBufferedWriter
''クラスはどのようにインスタンス化されますか?filewriter
よく分からない。
しかし、インスタンスnew FileWriter(path
を作成して拡張し、完全に有効にする)を実行しました。 FileWriter
FileWriter
Writer
Writer
はインターフェースではなく、拡張またはサブクラス化できる抽象クラスなどです。
インターフェイスが実装されています。そして、オブジェクトを作成し、そのオブジェクトへのポインタまたは参照new
を返します。参照は、オブジェクトを受け入れるコンストラクター(コンストラクターを特別なメソッドと考えてください)に値によって渡されます。BufferedWriter
Writer
私の説明がそれを明らかにしたことを本当に望んでいます。
FileWriterは、Writer抽象クラスを拡張するため(直接ではありませんが)、ライターです。したがって、ライターとして扱うことができます。参照してください:
http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html
ヒント:子クラスのオブジェクトは親クラスに型キャストできますが、その逆はできません。
上記の場合、クラスWriterのオブジェクトを取得します。これは、クラスWriterを拡張するため有効です。