2012-12-03 9 views

答えて

10

OutputStreamは、派生する抽象クラスです。サブクラスは必要に応じてを実装します。それ以外の場合、デフォルトの動作は何もしないことです。

ObjectOutputStream.flush()

+1

Resonable。しかし、ドキュメントではまだ奇妙な構成です。 –

2

OutputStreamのコードを参照してください。 フラッシングが必要な場合、派生インスタンスはそれをオーバーライドする必要があります。 たとえば、BufferedOutputStreamです。
バッファを持たないストリームは、flush()を無効にする必要はありません。

+0

する必要はありません。 –

+0

を選択することはできません。すべての抽象クラスが選択できるように、実装するかどうかを選択します。 – AlexWien

+1

しかし、あなたは上で述べたように、派生するインスタンスは*する必要があります。それは私が同意しないビットです! –

0

テキストの最初の部分は、flushの一般契約を説明しています。 OutputStreamを拡張するクラスは、この契約を遵守することが期待されます。

OutputStreamは抽象クラスですが、デフォルトの実装はflushです。説明したように、実装は何もしません。

関連する問題