В чем разница между FilterWriter и Writer в Java?

Из https://docs.oracle.com/javase/7/docs/api/java/io/Writer.html и https://docs.oracle.com/javase/7/docs/api/java/io/FilterWriter.html, я считаю, что FilterWriter абстрактный класс, который расширяет Writer и не имеет никаких дополнительных способов.

Мне просто интересно:

  1. Каково обоснование, чтобы определить FilterWriter как точная копия Writer?
  2. В чем разница между FilterWriter а также Writer ?

2 ответа

Решение
  1. Каково обоснование, чтобы определить FilterWriter как точная копия Writer?

FilterWriter не является точной копией Writer, Хотя заявлено abstractэто обеспечивает реализацию всех WriterЭто абстрактные методы, и это переопределяет некоторые из конкретных методов. Эти реализации служат FilterWriterСпециальное назначение, как описано в его документации API:

Абстрактный класс FilterWriter сам по себе предоставляет методы по умолчанию, которые передают все запросы содержащемуся потоку. Подклассы FilterWriter должны переопределять некоторые из этих методов, а также могут предоставлять дополнительные методы и поля.

Класс является абстрактным, несмотря на отсутствие абстрактных методов, потому что описанная функциональность сама по себе не является полезной. Он предназначен для использования в качестве базового класса для классов, которые отслеживают или изменяют поток символов при его записи в базовый класс. Writer,

  1. В чем разница между FilterWriter а также Writer?

Функционально FilterWriter обеспечивает конкретные реализации для WriterЭто абстрактные методы, и это отменяет некоторые другие. Тип-накрест, Writer является суперклассом группы классов, которые FilterWriter не является суперклассом, в том числе FilterWriter сам.

FilterWriter class является суперклассом всех классов записи, которые фильтруют вывод. Подкласс FilterWriter работает, оборачивая существующего писателя, называемого лежащим в основе писателем, и предоставляя дополнительную функциональность. Методы FilterWriter просто переопределить методы Writer с версиями, которые вызывают соответствующие методы основного писателя.

FilterWriter не может быть создан непосредственно; это должно быть подклассом. Экземпляр подкласса FilterWriter построен с другим Writer объект. Методы подкласса FilterWriter следует переопределить некоторые методы, чтобы расширить их поведение или обеспечить некоторую фильтрацию.

FilterWriter как FilterOutputStreamза исключением того, что он имеет дело с потоком символов вместо потока байтов.

Другие вопросы по тегам