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

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

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

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

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

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

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

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

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

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

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