JavaRush /Курсы /Java Syntax Pro Beta /Дополнительные лекции к уровню

Дополнительные лекции к уровню

Java Syntax Pro Beta
18 уровень , 9 лекция
Открыта

Отношения между классами. Наследование, композиция, агрегирование

В программировании вы быстро поймете, как важно не писать лишний объем кода. К счастью, в Java есть все необходимое, чтобы изящно «сокращать». В этой лекции наглядно описаны отношения между классами: наследование, композиция, агрегирование. Приготовьтесь: будет много интересных примеров.

Принципы инкапсуляции

Инкапсуляция, сокрытие — это разные понятия или одно и то же? В базовом виде вы уже сталкивались с инкапсуляцией не раз. Если хотите знать, как «спрятать» от пользователя сложные механизмы работы вашей программы и оставить на виду только удобный интерфейс, советуем внимательно прочесть эту лекцию.

Практика использования полиморфизма

Главное преимущество полиморфизма — гибкость. С одной стороны, вы можете работать с несколькими типами данных так, будто это один тип. С другой стороны, благодаря этому принципу вы можете сохранять поведение объектов. Когда вам пригодится приведение к единому виду, а когда — уникальные характеристики? Об этом и поговорим.

Для чего в Java нужны интерфейсы

В этой лекции без спешки и подробно описано, что такое интерфейсы и почему они появились в языке. А еще вы узнаете о популярных интерфейсах в Java. Приготовьтесь, это тема с продолжением!

Разница между абстрактными классами и интерфейсами

В этой лекции поговорим о том, чем абстрактные классы отличаются от интерфейсов и рассмотрим примеры с распространенными абстрактными классами.

Мы посвятили отличиям абстрактного класса от интерфейса отдельную лекцию, так как тема очень важная. О разнице между этими понятиями вас спросят на 90% будущих собеседований. Поэтому обязательно разберитесь с прочитанным, а если что-то поймете не до конца, почитайте дополнительные источники.


18
Опрос
Знакомство с ООП, 18 уровень, 9 лекция
Недоступен
Знакомство с ООП
Знакомство с ООП
Комментарии (122)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #3585174 Уровень 33
22 июля 2025
like
Артур Уровень 28
29 мая 2025
Формулировка (выберите неверное утверждение) угнетает.
Riga Уровень 15
1 мая 2025
9/10, не знал, что переменной класса наследника нельзя присвоить ссылку на обьект родительского класса, думал, что через приведение типа можно.
Exaltyr777 Уровень 24
6 августа 2025
там же попался кст
6 апреля 2025
Пупупу... изучаем Java Code Convention -> OOP -> SOLID -> GRASP -> GOF
Денис Кокшаров Уровень 32
11 февраля 2025
Что нельзя делать с абстрактным классом? (выберите неверное утверждение) один я читаю это как выберите то, что с абстрактным классом делать можно? Формулировка убогая, скобки и то, что внутри них нужно удалять, если нужно выбрать то, что с абстрактным классом делать нельзя в вопросе нужно оставить только это: Что нельзя делать с абстрактным классом? С этим вопросом не то, примерно то же: Что нельзя делать с интерфейсом? (выберите неверное утверждение) Оставить надо только это: Что нельзя делать с интерфейсом?
Cryptosin Уровень 24
15 февраля 2025

один я читаю это как выберите то, что с абстрактным классом делать можно?
видимо да, я прочитал именно так, как написано в условии делать можно 3 пункта, а запрещен один. по-моему "что можно делать" и "что запрещено делать" - это абсолютно разные понятия делать можно все, что не запрещено. PS вопросы и тема для меня очень легкая. с 1го раза 10/10
Денис Кокшаров Уровень 32
17 февраля 2025
ну в принципе ты очень умный получается)
w5277c Уровень 32
6 декабря 2024
Что нельзя делать с абстрактным классом? (выберите неверное утверждение) Перечислены варианты, которые делать можно. И как выбирать???
Antariko Уровень 8
27 декабря 2024
Так вроде же нельзя создавать объекты абстрактного класса
w5277c Уровень 32
10 января 2025
Похоже я сильно туплю и не понимаю формулировки. Можно подробнее? О чем речь?
Bugfix Уровень 41
13 января 2025
Объекты абстрактного класса создавать нельзя.
20 января 2025
Нельзя создать экземпляр абстрактного класса через new, так как у него не будет реализации методов. Не знаю какой абстрактный класс привести в пример, поэтому покажу на интерфейсе:

List<String> list = new List<>();
Нужен класс, в котором есть реализация абстрактных методов. В этом примере - класс, который реализует интерфейс

List<String> list = new ArrayList<>();
Rustam Уровень 3 Student
18 октября 2024
Интерфейсы удивили, надеюсь ещё будем говорить о ООП. Тема классная 👍
Sergo Уровень 22
12 октября 2024
3/10 чет вообще не улеглось у голове, буду перечитывать все заново
Styuart Уровень 36
30 декабря 2024
такой же результат и такая же ситуация....
Антон Карпов Уровень 5
27 августа 2024
10/10 Легкий уровень, даже не верится по сравнению с предыдущими. Похоже впереди какая-то жесть, раз его сюда добавили 😄
Макс Уровень 43 Expert
31 июля 2024
конструектор... сильно😁