Чем отличается интерфейс от абстрактного класса? Что использовать? 👨‍💻 Собеседование Java #Shorts ✅

preview_player
Показать описание
💡 Рассказываю, чем отличается интерфейс от абстрактного класса. Показываю на примере, что и когда использовать. Interface vs Abstract class.

Ставьте лайки, пишите комменты, включайте колокольчик 🔔

Учебный телеграм-канал с чатом для помощи и общения.

Учебный сайт по программированию на Java, Kotlin и Android.
Книги, курсы, вопросы и ответы для подготовки к собеседованию.

Собеседование Java, Kotlin, Android Studio, IntelliJ IDEA #Shorts
Рекомендации по теме
Комментарии
Автор

Я для себя вывел такое понятие: что интерфейс - это шаблон для методов, а абстрактный класс - базовый функционал для будущих наследников

kazbowski
Автор

Самое лаконичное объяснение которое я встречал. Спасибо большущее!!!!

ОлегКоролёв-че
Автор

Да, но вроде сейчас можно уже давать реализацию в интерфейсах и таким образом реализовывать несколько интерфейсов с частичной и/или полной реализацией в самом интерфейсе, часть реализовывать или перегружать в классе, который реализовывает интерфейс(ы), тем самым получится множественное наследие. Пусть коряво, но должно сработать

agweprint
Автор

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

maxkvasnikov
Автор

Интерфейс это публичный контракт для взаимодействия, а абстрактный класс это базовый шаблон.

Алексей-Баскаков
Автор

Я ПОНЯЛА. ПОСЛЕ ЧАСА ГОЛОВНОЙ БОЛИ Я ПОНЯЛА. Дай автору бог здоровья 🎉🎉🎉

mariachainaya
Автор

Автор все чётко объяснил 👍🏻 это - 2 основных столпа ООП.

l_mm_l
Автор

Т. е. интерфейс реализуем только если нужно указать только поведение для объектов. А вот абстрактный класс нужно использовать, когда нужно описать свойство объекта переменными и указать его поведние методом? И абстрактный класс может описывать несколько объектов с разными характеристиками по типу скорости лодки и катера?

kazumashitory
Автор

абстрактный класс может иметь поля, а так-же помимо абстрактных и обычные методы, в том числе и приватные, интерфейс может иметь только публичные методы для реализации. Различие в применении в том, что абстрактный класс используется в качестве родителя для определённой схожей группы объектов, когда интерфейс может описать какое-то конкретное его свойство. В целом же всё ООП построено на удобстве для юзера, прочитав названия интерфейсов которые реализует класс нам становится понятно, какие методы он имеет и что они означают даже без чтения javadoc

fbiflow
Автор

в примере небольшая ошибочка: параметр speed лучше перенести из animal в movable, поскольку он используется во втором, а не в первом

SyberiaK
Автор

Расскажи, про смысл реактивности в Java и какие у нее преимущества

dazelao
Автор

Всем конечно спасибо, вы тратите время на создание контента. Но все, абсолютно все, говорят одно и тоже и, к сожалению, не дают главного - понимания того, зачем это нужно и когда это применять.
Например интерфейс, в нем описан метод без тела метода. Имплементируем интерфейс и... и что? Что мне мешает создать два класса с разной реализацией метода move(). Для чего мне это выносить в интерфейс и имплементировать его.
P.S. Не нужно только злостных комментов и посыланий меня в страну эльфов) я просто реально пытаюсь разобраться и пока понимания не нахожу.

Youtooobo
Автор

Это как методы расширения, и наследование с полиморфизмом, вроде об одном, но по разному

CreepaHD
Автор

название загораживает весь код внизу. Про тестирование не буду вас спрашивать) Спасибо за объяснение

biLLie_wiLLie
Автор

Т. Е разница в предопределенных переменных?

tusmanik
Автор

чьорт, я сначала
подумал, что это typescript

АндрейАстанаев-пх
Автор

То что сказано в видео можно отнести к любому классу, главный смысл абстрактного класса, что нельзя создать его эксземпляр(при определённых махинациях можно конечно ) и отсюда следует все остальное

Shikarno_
Автор

В абстрактному класі ми можемо реалізовувати повторяючі методи в інтерфейсі ми можемо задати тільки назву методу

doorin_store
Автор

Главное: можно имплементировать много интерфесов в одном классе, а от абстрактоного класса можно наследоваться только от одного. Интерфейсы - это замена множественного наследования, отсутствующего в java.

dmarsentev
Автор

Всё равно не понятно, моё текущие понимание, что интерфейс нужен тогда, когда ты хочешь быть уверен, что наследники точно переназначат свой собственный метод

DLLERH