Java Абстрактный класс VS Интерфейс

Поділитися
Вставка
  • Опубліковано 19 лют 2019
  • Java Абстрактный класс VS Интерфейс
    www.job4j.ru - Курсы Java разработки c трудоустройством.

КОМЕНТАРІ • 50

  • @object-22
    @object-22 Рік тому +3

    Вопросов нет. Наоборот, нашёл тут ответ на свои вопросы. Спасибо за понятное и простое объяснение.

  • @leonidkorkulenko4838
    @leonidkorkulenko4838 5 років тому +2

    Спасибо большое! Детально, доходчиво и по делу)

  • @alekseysidorenko1855
    @alekseysidorenko1855 5 років тому +1

    Пётр, спасибо за видео.

  • @iryna6389
    @iryna6389 5 років тому +9

    Спасибо, вот прям в тему!!! Полностью разобран вопрос!!! Спасибо!!!

    • @alexpanasyuk4696
      @alexpanasyuk4696 4 роки тому

      Irina Привет.Видел тебя в комментах bobocode) Уже работаешь?

  • @user-lv5nq7gs4d
    @user-lv5nq7gs4d 3 роки тому +1

    Шикарное объяснение!

  • @Mifuragon
    @Mifuragon 2 роки тому

    Вот бы продолжение этой клёвой рубрики

  • @HowItWorks
    @HowItWorks 5 років тому

    Спасибо. На мой взгляд несколько сумбурно, но все ключевые моменты рассказаны.

  • @ilya9852
    @ilya9852 Рік тому

    Спасибо, теперь всё понятно

  • @tolstikvladimirov5506
    @tolstikvladimirov5506 5 років тому +1

    спасибо. Пётр, было бы полезно, если бы ты объяснил с точки зрения опыта, когда лучше использовать wildcard, а когда параметр типа. если их нужно ограничивать по иерархии.

  • @adeskmath
    @adeskmath 3 роки тому

    Спасибо!

  • @MuratFatykhov
    @MuratFatykhov 7 місяців тому

    Потому что я бээтмээн 7:59
    Спасибо за видео! Шикарно раскидал 🔥

  • @ilya9852
    @ilya9852 Рік тому +1

    Имя метода в сочетании с числом параметров и их типами называется его сигнатурой. А сигнатура метода в сочетании с типом возвращаемого значения называется контрактом метода. (4:32)

  • @igorm.9845
    @igorm.9845 5 років тому

    Чем отличается компонент от бина?

  • @AlexanderShock3r
    @AlexanderShock3r 4 роки тому

    Подписался чтобы остальные вопросы на собеседовании посмотреть, а тут в плейлисте только один этот видос

    • @job4j
      @job4j  4 роки тому +1

      Добрый день. Александр. Спасибо, что смотрите. Пока нет времени записывать эти видео. Советую подготовить OOP. Collections. SQL, Thread, Hibernate, Spring. Это основные темы при трудоустройстве.

  • @PRO-pt6ew
    @PRO-pt6ew 4 місяці тому

    Только в пятницу задали такой вопрос)

  • @sazanya854
    @sazanya854 5 років тому +2

    1) Ссылочные и примитивные типы данных.
    2) Что происходит при создании объекта (про память, вызов конструкторов в иерархии).
    3) Позднее и раннее связывание. Переопределение и перегрузка методов (статических и нестатических).
    4) Исключения. Зачем они вообще нужны. Иерархия классов исключений. Проверяемые и непроверяемые исключения.

  • @user-io2fn8es3h
    @user-io2fn8es3h 5 років тому

    почему Runtime exeption не обрабатываемая, вот прям максимально в глубь зайти

  • @forlearning2653
    @forlearning2653 4 роки тому +1

    Не понимаю что значит слово "состояния" класа. Типа в интерефейсе поле может быть только константой, а в абстрактном класе - поле как в обычном класе. Если взять англ термин, то какой будет?

    • @job4j
      @job4j  4 роки тому

      state.

  • @job4j
    @job4j  5 років тому +4

    Java Абстрактный класс VS Интерфейс
    www.job4j.ru - Курсы Java разработки c трудоустройством.

    • @mukcep5414
      @mukcep5414 5 років тому

      Состояние - это ведь конструктор?) к чему такая путаница.. Петр, если интересно подкину тему к видео. На ютубе полно видео про интерфейс, но все описывается так что есть вот интерфейс и класс его реализующий должен реализовать его методы. И народ на самом деле начинает думать что интерфейс создан для того, чтобы класс его реализующий реализовал его методы. Вот и вся его надобность, чтобы мол ничего не забыть. lol

    • @user-varmat
      @user-varmat 5 років тому

      @@mukcep5414 Конструктор описывает состояние, но не является им. Состояние - значение полей, которое объект принимает.

    • @mukcep5414
      @mukcep5414 5 років тому

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

    • @user-varmat
      @user-varmat 5 років тому

      @@mukcep5414 хорошо, если ты передал в конструктор параметры new Human(23, "Mark",) ты разве не описываешь то с какими значениями полей он будет создан. К твоему вопросу и моему ответу выше. Думаю правильнее было бы сказать что конструктор это возможность задать или описать, то как объект будет создан и какое состояние объекта будет, после его создания. И еще состояние мы можем и с помощью сеттеров поменять.

    • @mukcep5414
      @mukcep5414 5 років тому

      4:07 у абстрактного класса есть состояние. Конструктор есть и есть некое состояние. Как я понял это возможно построить объект с значениями конструктора. Так?

  • @g.bagiryan
    @g.bagiryan 4 роки тому

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

    • @job4j
      @job4j  4 роки тому +1

      Интерфейсы не имеют состояний. Если нет данных, то и проблем нет.

  • @alexandrkomar4741
    @alexandrkomar4741 3 роки тому

    В абстрактном же классе тоже константы объявлены final...

  • @mshvsh
    @mshvsh 4 роки тому

    Для чего в методе "инфо" абстрактного класса используется ключевое слово this?

    • @job4j
      @job4j  4 роки тому +1

      На тот момент я считал, что это стилистически важный момент. Сейчас могу сказать, что лучше в коде нигде не писать this. Это шум.

  • @user-xg6bi9pz8n
    @user-xg6bi9pz8n Рік тому

    Спасибо, жаль что видео только одно с этого сборника

  • @user-xn8qk6cg2j
    @user-xn8qk6cg2j 2 місяці тому

    Всем привет! Есть вопрос про состояние/поведение!? Я знаю, что абстрактный класс описывает как поведение, так и состояние, в то время как интерфейс определяет только поведение. А почему в видео наоборот, смотрел и в конспекте подправил, а потом пошёл уточнять в ООП

    • @job4j
      @job4j  2 місяці тому

      Все верно вы говорите. Класс описывает поведение и состояние, а интерфейс только поведение. У меня наоборот в видео?

    • @user-xn8qk6cg2j
      @user-xn8qk6cg2j Місяць тому

      @@job4j Да, посмотрите своё видео!

  • @pluto_nash
    @pluto_nash 10 місяців тому

    Это лучшее объяснение на русском языке отличий между интерфейсом и абстрактным классом. Остальные задроты в своих видосах говорили непонятную тарабарщину.

  • @user-yr5xe6op3k
    @user-yr5xe6op3k 5 років тому

    super vs this

    • @Archeryring
      @Archeryring 4 роки тому

      Super относится к родительскому [наследуемому] классу, а this - к текущему.

  • @danielgyrtes6370
    @danielgyrtes6370 4 роки тому

    Все хорошо, но key == кий :)

  • @namesurname4406
    @namesurname4406 2 роки тому

    8:25 не понял как абстрактный класс содержит состояние объекта, когда он не может иметь экземпляров.

    • @ovsyannikovo
      @ovsyannikovo 2 роки тому

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

  • @Rommel7755
    @Rommel7755 4 роки тому

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

  • @artonext
    @artonext 4 роки тому +8

    Ну я ещё добавлю разницу между Абстрактным Классом и Интерфейсом....
    Интерфейс даёт поведение разным объектам которые к примеру умеют летать пример от интерфейса Fly можно имплементить метод fly() и его могу имплементить разные классы типа Птица , Самолёт или Пчела...
    А абстрактный класс неполноценный класс поэтому у него нету экземпляра и от него наследуются похожие на него класс потому что у них должны быть похожие методы возьмёт к примеру Абстрактный класс Самолёт он же Airplain у самолёта есть части матор колёса и тд...делаем из запчастей методы к примеру motor(); и можно от него наследоваться и будут базовые параметры...И добавлю ещё почему использовать абстрактный класс все абстрактные классы это абстрактные сущности то есть грубо говоря неконкретные но мы может из Самолёта наследоваться своим классом конкретным самолётом к примеру модель которого Ту-204 и всё готово можно дописывать свои конкретные параметры...
    Всем спасибо удачи (не лайкайте не для этого старался ^_^)

  • @SB-pk2ss
    @SB-pk2ss 4 роки тому +7

    ну такое, ни разу не доходчиво объяснено, с темы на тему постоянные перепрыгивания. Ну и много неточностей в терминологии, по типу что интерфейсы наследуются и тп

    • @job4j
      @job4j  4 роки тому +2

      Спасибо за комментарий. Надеюсь, хоть в чем-то Вам это видео помогло.

  • @user-qz7vz8lq4x
    @user-qz7vz8lq4x 2 роки тому

    а как понять состояние обьекта? в чем она выражается? Обьясните тупому пж

  • @qwertymangames1800
    @qwertymangames1800 Рік тому

    Неумение использовать наследование там где оно нужно не нужно заменять интерфейсами) это плохой совет

  • @boobubuo
    @boobubuo 3 роки тому

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