JavaRush
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Зачем переопределять методы с одним лишь делегированием в...
Archy
1 уровень
  • 30.04.2023
  • 286просмотров
  • 3комментариев

Зачем переопределять методы с одним лишь делегированием выполнения, если они и так неявно прописаны в классе-обертке?

Вопрос по задаче AmigoOutputStream
Java Core,  8 уровень,  8 лекция
Обсуждается
0
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anonymous #3392370
Уровень 33
22 января 2024, 08:21
Поддерживаю вопрос: объясните для тупых - нахрена мы используем одновременно и наследование, и композицию??? У нас на выходе объект FileOutputStream, который в себе содержит объект FileOutputStream. В итоге мы вызываем методы то у объекта-зависимости, то у самого объекта. Зачем?
0
Стас ПасинковSoftware Developer в ZipyMaster
23 января 2024, 00:05
покажіть код в умові задачі нічого такого нема мы используем одновременно и наследование, и композицию бо в цьому прикол цього патерну. він призначений для того, щоб ми могли додати якусь функціональність до якогось класу, до якого в нас нема доступу (наприклад, якийсь клас зі стандартної бібліотеки джави, чи просто якийсь клас із іншої бібліотеки). такий клас, в який ми не можемо залізти всередину і дописати потрібний нам функціонал. в задачі цей "додатковий функціонал" - це пункт 2.2 Записать в конец файла фразу "JavaRush © All rights reserved." такого функціоналу нема в FileOutputStream, правильно ж? для того щоб змінити внутрішню поведінку - нам і потрібна композиція. маючи об'єкт класу ми у потрібний момент можемо дописати те, що нам треба. для чого тоді треба наслідування? для того, щоб ми могли передавати цей наш об'єкт в інші методи, які очікують від нас якийсь FileOutputStream. тільки тепер ми можемо передати в той метод не стандартний FileOutputStream, а вже модифікований нами, із додатковим функціоналом.
+2
Anonymous #3392370
Уровень 33
23 января 2024, 18:18
Стас, спасибо за ответ! Да, как раз перечитал про реализацию декораторов в джаве, все встало на свои места. Смутило переплетение вызовов методов, то вызываем методы супер-класса, то методы объекта композиции.
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush