2023-ий год а я учу По этим урокам)) наилучший Автор,очень понятно объясняет. Единственное что я чуток не понял конец,но потом пересмотрев пару раз понял,но повторить такое мне будет сложно ,думаю эта логика приходит с опытом. Спасибо автору!
Для других кто натолкнулся - в Intellij Idea в 2021 году горячая клавиша для меню создания конструктора, геттера-сеттера -- Alt + Insert. У меня стоит IntelliJ IDEA Community Edition 2020.2.1 x64, если что. Автору большое спасибо, я уже много на англ языке прослушал уроков по программированию, Вы единственный от кого меня в сон не клонит на уроке :) Шутки шутками, но это реально мешает и демотивирует обучаться.
Я всегда смотрю только на английском, этот курс единственный на русскоязычном ютубе мне понравился. А оно и понятно, почему так, видно, что автор сам учился на англоязычных источниках, правильно использует конвенции в названиях(что очень, блин, важно, и часто хромает у русских обучателей), и темы действительно объясняет, а не просто показывает код, и всё, дём дальше.
@@enered3944 на удивление я не забросил. Обычно после какого то начинания после угасания интереса бросаю, здесь же такого нету. В данный момент я этот курс начинающих закончил и решил ознакомиться со Spring Framework попутно изучая как все это работает. Но я буквально недавно начал, так как самостоятельно изучал коллекций, лямбда выражения, многопоточность, Comparable и Comparator интерфейсы для коллекции и т.д.
Пошел на очный курс - но объясняют так, что приходится после каждого занятия смотреть Ваш урок по теме чтобы добиться понимания. Прекрасная подача материала, спасибо!
а как в таком случае брать то или иное поле из класса? Через default получается реализовать только общие методы, которые подходили бы всем классам без индивидуальных полей/значений/параметров
Info info1 = new Animal(1); Это можно представить как окно, если вы внутри дома: т.е. Animal animal = new Animal(1); то вам видна вся комната (шкаф стул книжная полка и т.д.), а если вы снаружи: т.е. Info info1 = new Animal (1); то ваша область видимости (как бы окно сужает область видимости) сужается, и вы видите "например" только шкаф.
Не ну правда, я смотрел обучающие видео других - мне все было понятно на 90%. Смотрю эти видео - всё понятно на 100%. Изначально я решил, что всё понимаю по той причине, потому что пересматриваю повторно. Ведь ранее эти же темы проходил по обучающим видео, других авторов. Но нет. Теперь понимаю, что javaRussia действительно понятно объясняет и дело не в том, что я повторяю пройденный материал. Автор, у тебя талант.
Как уже кто-то говорил, видно, что автор фильтрует каждое слово перед тем, как его сказать. Очень признателен за такой серьёзный подход к урокам (по сравнению с другими авторами на ютубе). Топ.
Cпасибо за ваши видео, у вас талант объяснять.Смотрю как дополнение к джава рашу, и если по лекциям джавы раш часто остаются вопросы, то по вашим видео получается их закрыть)
Жестяная жесть. Ничего не понял. Реально дня три читал интернеты и оказалось все очень просто, если правильно подать материал. А фишка в том, что интерфейсы это всего лишь кусок полиморфизма, который состоит из: Наследования, Абстрактных классов и Интерфейсов. т.о. необходимо смотреть на всю картину сразу, чтобы было понятно, что откуда. Наследование классов было в уроке 25. И в принципе все просто и понятно. И тут мы сразу погружаемся в интерфейсы, перескочив абстрактные классы, которые будут только в 41 уроке и сам Полиморфизм, который освещается в 29. Естественно ничего не понятно))) И так, чтобы легче пошло, вникаем в суть наследования классов, далее слегка погружаемся в абстрактные классы, а уже после этого еще раз смотрим на интерфейсы. Спойлер: абстрактный класс - очень похож на интерфейс. Только в случае с классом наследник может иметь только одного родителя и соответственно наследовать методы и параметры только этого самого одного родителя и всё. Интерфейсы же позволяют одному классу наследнику иметь (implement) вагон методов и параметров от разных родителей(Интерфейсов). Кроме того сами Интерфейсы могут наследовать (extend) методы от других интерфейсов.
@@МаксОгн Не совсем. У абстрактного класса могут быть как реализованные методы (с телом) так и абстрактные (без тела), когда класс наследник наследует всё - то он получает в своё распоряжение как уже готовые методы так и контракт (обязанность) определить что делают абстрактные методы. Если класс наследник не определяет абстрактные методы от отца, то уже он обязан стать абстрактным. Интерфейс работает как контракт, класс который его имплементирует обязан или реализовать методы интерфейса или же стать абстрактным. Но вот незадача, у интерфейса могут быть методы с реализацией (static методы, default, даже private методы, которые работают только в интерфейсе под капотом и не имплементируются), грубо говоря есть очень большое кол-во возможностей и слишком мало времени. Всё постигается с опытом и на чистом энтузиазме.
Спасибо, очень полезные и понятные уроки! Еще рассказывали, что абстрактные классы применяют для описания большого количества методов, а интерфейсы - для небольшого количества.
15:25 Ай молодец, уже и почву для нитей готовит) Как приятно пересматривать материал для закрепления Зы кстати, ютуб редиска такая походу на некоторых видео скручивает лайки, ибо я точно помню что спецом везде прожимал лукозавры.
П.с говорю тем, у кого возникают сложности... Вы можете пока что забить на столкнувшуюся сложную вещь, но продолжайте дальше что-то учить, и со временем поймёте ту часть, которую долго не могли понять. У меня это так :)
@@JBash-e7c в 24 уроке, про метод toString он говорил про переопределение метода, а аннотация @Override просто обязует это переопределение, что даже не всегда считается нужным
полностью согласен. хоть автор и объясняет все доходчиво, но не обозревает всю картинку целиком. нет ответов на вопросы: зачем нам интерфейс? почему мы не можем обойтись без него? в чем его удобство? и т.д. пс. в конце все таки была подведена некая черта и стало понятно что как минимум интерфейсы нужны чтобы в других классах обязательно реализовать все задуманные методы и ничего не забыть. и всё таки об этом нужно было говорить в начале. так бы и видео смотрелось иначе
Я думал что из-за возраста в 39 лет не могу понять тему ООП про интерфейсы в достаточной степени. Оказалось все дело в доходчивости изложения преподавателем. Спасибо.
21:35 здесь понятие про полиморфизм расплылось конкретно, т.к думал, что мы, только (!) при создании объектов типа info, ссылающихся на person и animal, можем использовать метод showInfo, а оказывается не только…
Спасибо большое за урок! Подскажите пожалуйста, почему при реализации метода schowInfo например в классе Animal: System.out-println("Id is "+this.id); почему "this.id" а не просто " id"?
Можно было написать и просто id, программа бы работала. Однако когда мы пишем this.id, мы явно указываем на то, что мы хотим вывести поле "id" текущего объекта. Есть такие случаи, когда просто id не сработал бы. Пример: public void showInfo() { int id = 0; // объвили переменную в методе System.out.println(id); } Вот в этом, случае, когда у нас есть переменная id внутри метода, если мы напишем просто id, мы выведем эту переменную, а не поле id. Если же мы хотим вывести именно поле объекта, то мы должны писать this.id.
@@alishevN здравствуйте, можете пожалуйста объяснить оператор "return", никак не могу понять его(( Даже из вашего видео не понял😨 А именно не могу выяснить - Что это такое? Как он работает? Зачем он возвращает значение и для чего?
Доступно, понятно. Спасибо! Один вопрос. Может направите на какой-нибудь толковый, по вашему мнению. ресурс, где можно взять не очень сложные задачки и проходя ваши уроки попытаться их прорешать?
Получается интерфейс отличается от абстрактных методов в абстрактном классе только тем, что как бы аккумулирует все методы, которые нужно обязательно переопределить. Это визуально удобнее и более упорядочивает проект
как в 2023 году в IJ создавать конструктор? при нажатии ctrl + N открывается другое окно p.s. погуглил, ctrl + N это только на маке. на винде и линуксе, чтобы открыть окошко Generate надо нажать Alt + Insert
Как я понял интерфейсы это шаблон подключая который мы убираем шанс ошибиться, так как среда будет выдавать ошибку пока мы не реализуем все методы интерфейса в классе к которому мы подключили интерфейс?
привет, все до этого нормально понимал но вот эти интерфейсы меня запутали , я так и не понял зачем они нужны, и когда я должен их использовать? когда я это почувствовать должен что настало время интерфейсов? или вообще есть возможность мне лично объяснить? пожалуйста помогите.
Лучший курс, нашёл и поддержал на Udemy, вместе с продвинутым) Но вот тут что-то залип В Person и Animal, когда добавлял "implements Info", info упорно горит красным Похоже, придется создавать новый пакет и все переписывать туда, прямо по видео, след в след, ибо не могу в толк взять, что же не так
Прекрасные уроки! Спасибо. Смотрю с удовольствием и многое понял только из них. Появился вопрос следующего содержания (может не совсем к этой теме): будет ли урок по возврату объектов из методов и более подробно про передачу объектов в качестве параметров? Вот вокруг этого у меня сейчас и не выходит вникнуть. Спасибо!
Понимаю, что некропостинг, но я вот только дорос :) На 12:54 при имплементации метода интерфейса указано переопределение (Override). Вопрос: а зачем оно тут, если в интерфейсе нет реализации метода? Что переопределяется в этом случае? (Не бугурт, просто учусь и пытаюсь разобраться).
Аннотация не обязательна и не отражает сути (многие согласны, что слово Override тут не в тему), но является маркером для компилятора внимательнее приглядеться к функции. Например, класс С реализует интерфейс А. Интерфейс А при этом расширяет интерфейс B. Мы реализуем в классе С метод из интерфейса А и метод из интерфейса B. Оверрайд не юзаем. В какой-то момент приходим к выводу, что интерфейс А не должен расширять B. Забываем при этом удалить реализацию метода B из класса. Компилим - никаких ошибок. Если же будет стоять слово Override, то компилятор ругнется. Обратит наше внимание.
@Override написано только в одном случае, где Idea сама добавила нам код для описания реализации интерфейса, в другом случае мы писали всё вручную. Подозреваю, что надпись @Override функционально ни на что не влияет, но помогает нам сэкономить время и даёт понять, что описываем здесь реализация метода имплементированного интерфейса. Поправьте, если я не прав)
Аннотацией @Override следует пользоваться когда вы пишите метод переопределящий другой метод. Без нее вы также можете этот метод переопределить но если в параметрах например будет что-то отличное от переопределямого метода , то вы просто создадите новый метод а не переопределите его и никто вам ничего не скажет а с @Override компилятор выдаст ошибку.
Всем привет ребят, подскажите пожалуйста зачем мы у метода outputInfo ставим ключевое слово static? Чтобы не создавать экземпляр(объект) класса Test чтобы использовать этот метод?
Извините не посмотрел до конца, так как сам уже все это знаю, просто ищу курсы, которые можно посоветовать другим. Возможно вы об этом позже сказали, я не досмотрел, но все таки в интерфейсе можно реализовать методы, то есть можно написать и тело метода, для этого надо в начале написать ключевое слово default, в вашем случаи default public void showInfo(){ //ваш код }
Регистрируйтесь на курс "Продвинутая Java": th-cam.com/video/rRe1vT0SDD8/w-d-xo.html
Практикуйтесь в написании Java кода: java-marathon.tilda.ws
Каким шрифтом вы пользуетесь?
Эх, знали бы вы когда записывали эти обучающие видео, сколько программистов они взростят))))
Спасибо огромное!)
❤❤❤❤❤❤❤❤❤❤😂😂😂😂😂😂
@@ОлегТрофимчук-м9я ?
Респект!!! У Вас талант объяснять: четко, ясно, без лишней воды! Я в восторге от Ваших уроков! Спасибо Вам!
2023-ий год а я учу По этим урокам)) наилучший Автор,очень понятно объясняет. Единственное что я чуток не понял конец,но потом пересмотрев пару раз понял,но повторить такое мне будет сложно ,думаю эта логика приходит с опытом. Спасибо автору!
не ты один)
@@guseynbolt8369 и ты не один
+
На англо ютубе конкретно по джаве что-то мне не зашли туториалы. Половина еще и на хинди, либо с ужасным индийским акцентом.
Brocode нормальный
Для других кто натолкнулся - в Intellij Idea в 2021 году горячая клавиша для меню создания конструктора, геттера-сеттера -- Alt + Insert. У меня стоит IntelliJ IDEA Community Edition 2020.2.1 x64, если что.
Автору большое спасибо, я уже много на англ языке прослушал уроков по программированию, Вы единственный от кого меня в сон не клонит на уроке :) Шутки шутками, но это реально мешает и демотивирует обучаться.
лично я все равно засыпаю
@@Сулейман-с3у через это нужно перешагнуть, мозг привыкнет к этой скукоте и перестанет отключаться)
Как же ты хорош!
Лучший
Я всегда смотрю только на английском, этот курс единственный на русскоязычном ютубе мне понравился. А оно и понятно, почему так, видно, что автор сам учился на англоязычных источниках, правильно использует конвенции в названиях(что очень, блин, важно, и часто хромает у русских обучателей), и темы действительно объясняет, а не просто показывает код, и всё, дём дальше.
Очень интересно конечно все, спасибо большое). И кстати на windows, для вызова меню жмем Alt+Insert).
Артем, спасибо!
как успехи?
@@trrt9756 как у тебя успехи?
@@ringoway как обучение, куда продвинулся?
@@enered3944 на удивление я не забросил. Обычно после какого то начинания после угасания интереса бросаю, здесь же такого нету.
В данный момент я этот курс начинающих закончил и решил ознакомиться со Spring Framework попутно изучая как все это работает. Но я буквально недавно начал, так как самостоятельно изучал коллекций, лямбда выражения, многопоточность, Comparable и Comparator интерфейсы для коллекции и т.д.
Наконец-то я понял, для чего и как применяются интерфейсы! )) Ваши уроки информативны и одновременно доходчивы. Спасибо!
Так для чего, не понятно?
вот никто академично не может объяснить понятие интерфейса. Все приводят примеры использования и на этом заканчивается ответ :)
Пошел на очный курс - но объясняют так, что приходится после каждого занятия смотреть Ваш урок по теме чтобы добиться понимания. Прекрасная подача материала, спасибо!
Пожалуйста!
Как успехи? Надеюсь, что вы бесплатно пошли на курс.
@@alishevNСПОСИБО !за работу.Как вы шли к прогромиста есть видео где то.
Посмотрел один раз, понял что запутался в Info, попил чайку глянул ещё раз и зашло на ура. Спасибо за подробный урок.
Отдельное спасибо за alt+insert
начиная с java 8 методы можно реализовать прямо в интерфейсе, указав модификатор default перед эти методом
shukran
а как в таком случае брать то или иное поле из класса? Через default получается реализовать только общие методы, которые подходили бы всем классам без индивидуальных полей/значений/параметров
Боже храни таких людей! Спасибо большое!!!
Info info1 = new Animal(1);
Это можно представить как окно, если вы внутри дома: т.е.
Animal animal = new Animal(1); то вам видна вся комната (шкаф стул книжная полка и т.д.), а если вы снаружи: т.е.
Info info1 = new Animal (1); то ваша область видимости (как бы окно сужает область видимости) сужается, и вы видите "например" только шкаф.
Классная аналогия, спасибо!!!
Вот это глубина! Дай Бог тебе здоровья и активной долгой жизни
Не ну правда, я смотрел обучающие видео других - мне все было понятно на 90%.
Смотрю эти видео - всё понятно на 100%.
Изначально я решил, что всё понимаю по той причине, потому что пересматриваю повторно. Ведь ранее эти же темы проходил по обучающим видео, других авторов.
Но нет. Теперь понимаю, что javaRussia действительно понятно объясняет и дело не в том, что я повторяю пройденный материал.
Автор, у тебя талант.
как успехи?
Материал разложили по полочкам, теперь всё стало понятно. Спасибо вам большое за уроки!
Спасибо, да, сложновато пока дается. Попробую еще где то глянуть на эту тему уроков.
Надо будет еще раз пересмотреть, что бы до конца эта тема зашла) Благодарю за данный урок
Какой же ты все-таки КРАСАВЕЛЛА!!! Это дар так четко и понятно рассказывать! Заносит порой в дебри, но это не смертельно! Спасибо!
Как уже кто-то говорил, видно, что автор фильтрует каждое слово перед тем, как его сказать. Очень признателен за такой серьёзный подход к урокам (по сравнению с другими авторами на ютубе). Топ.
Самые понятные уроки у этого автора! Супер спасибо
Большое спасибо. Очень доходчиво. Надеюсь будут ещё лекции.
как успехи?
У Вас редчайшая способность, объяснять сложное просто.
Cпасибо за ваши видео, у вас талант объяснять.Смотрю как дополнение к джава рашу, и если по лекциям джавы раш часто остаются вопросы, то по вашим видео получается их закрыть)
Жестяная жесть. Ничего не понял. Реально дня три читал интернеты и оказалось все очень просто, если правильно подать материал.
А фишка в том, что интерфейсы это всего лишь кусок полиморфизма, который состоит из:
Наследования, Абстрактных классов и Интерфейсов. т.о. необходимо смотреть на всю картину сразу, чтобы было понятно, что откуда.
Наследование классов было в уроке 25. И в принципе все просто и понятно.
И тут мы сразу погружаемся в интерфейсы, перескочив абстрактные классы, которые будут только в 41 уроке и сам Полиморфизм, который освещается в 29.
Естественно ничего не понятно)))
И так, чтобы легче пошло, вникаем в суть наследования классов, далее слегка погружаемся в абстрактные классы, а уже после этого еще раз смотрим на интерфейсы.
Спойлер: абстрактный класс - очень похож на интерфейс. Только в случае с классом наследник может иметь только одного родителя и соответственно наследовать методы и параметры только этого самого одного родителя и всё.
Интерфейсы же позволяют одному классу наследнику иметь (implement) вагон методов и параметров от разных родителей(Интерфейсов). Кроме того сами Интерфейсы могут наследовать (extend) методы от других интерфейсов.
То есть абстрактный клас работает как интерфейс, но при этом работает как extends, что можно унаследовать только один?
@@МаксОгн Не совсем. У абстрактного класса могут быть как реализованные методы (с телом) так и абстрактные (без тела), когда класс наследник наследует всё - то он получает в своё распоряжение как уже готовые методы так и контракт (обязанность) определить что делают абстрактные методы.
Если класс наследник не определяет абстрактные методы от отца, то уже он обязан стать абстрактным.
Интерфейс работает как контракт, класс который его имплементирует обязан или реализовать методы интерфейса или же стать абстрактным.
Но вот незадача, у интерфейса могут быть методы с реализацией (static методы, default, даже private методы, которые работают только в интерфейсе под капотом и не имплементируются), грубо говоря есть очень большое кол-во возможностей и слишком мало времени.
Всё постигается с опытом и на чистом энтузиазме.
@@ОрдинцевМихайло Понял. Спасибо за хороший ответ 👍☺️
Спасибо, очень полезные и понятные уроки! Еще рассказывали, что абстрактные классы применяют для описания большого количества методов, а интерфейсы - для небольшого количества.
Очень рад что нашёл ваши уроки. Вы прекрасный сенсэй)
15:25 Ай молодец, уже и почву для нитей готовит) Как приятно пересматривать материал для закрепления
Зы кстати, ютуб редиска такая походу на некоторых видео скручивает лайки, ибо я точно помню что спецом везде прожимал лукозавры.
Красавчик - классно объясняешь. Грамотно, ясно и без Воды. Спасибо.
Шедевральное видио. Так просто и не самом простом, но важном. Благодарочка
Как жалко, что людей интересует всякое дерьмо, а у действительно важных вещей как это видео так мало просмотров.Автору низкий поклон.
Ну и нафига вам столько конкурентов? ;-) Пускай мультики и иже с ними смотрят. В программерской среде, имхо. и так конкуренции хватает.
Дядя, выучил программирование?
@@kamenyFX выучил, поработал и в очередной раз понял, что не хочу быть программистом. Стал DevOps
@@dmitriigolyshkin1876 Молодец🧐
Я не пожалел времени, что потратил на просмотр этого Урока!большое спасибо!
Благодарю от души, очень доходчиво и понятно объясняешь!
очень крутая подача материала, подробно разжевал про интерфейсы и даже полиморфизм затронул:) спасибо!
Трудно эта тема дошла до меня. Спасибо. Раз 5 пересмотрел.
если что то не понятно, ищите другие источнки
П.с говорю тем, у кого возникают сложности...
Вы можете пока что забить на столкнувшуюся сложную вещь, но продолжайте дальше что-то учить, и со временем поймёте ту часть, которую долго не могли понять. У меня это так :)
Отличные уроки, много тем разобрано и главное довольно подробно. За один только этот ролик заполнил довольно много пробелов в голове.
Generate Constructor появляется при нажатии Alt+Insert в Idea on Windows.
4:35 на винде alt+insert
привет. в каком уроке ты рассказывал про @override?
Я вот тоже не помню. ВОзможно, он оговорился.
@@JBash-e7c в 24 уроке, про метод toString он говорил про переопределение метода, а аннотация @Override просто обязует это переопределение, что даже не всегда считается нужным
все эти путанные многоходовочки понятны, хотя полной картины всего происходящего пока нет, уверен в дальнейшем обучение озарение придёт ко мне :)
полностью согласен. хоть автор и объясняет все доходчиво, но не обозревает всю картинку целиком.
нет ответов на вопросы:
зачем нам интерфейс? почему мы не можем обойтись без него? в чем его удобство? и т.д.
пс. в конце все таки была подведена некая черта и стало понятно что как минимум интерфейсы нужны чтобы в других классах обязательно реализовать все задуманные методы и ничего не забыть. и всё таки об этом нужно было говорить в начале. так бы и видео смотрелось иначе
наконец то нашел про переменные типа интерфейс и как и для чего так делается
Отличные уроки, спасибо огромное, надеюсь, что вы неплохо подняли с рекламы на этих роликах
Очень доступно и очень грамотно и интересно!!! Спасибо большое!!
Я думал что из-за возраста в 39 лет не могу понять тему ООП про интерфейсы в достаточной степени. Оказалось все дело в доходчивости изложения преподавателем. Спасибо.
Понять - это одно, а применять на практике - это совсем другое
@@Дмитрий-ц5ш5ъ буду рад Вашим советам
Блин, спасибо большое автору!
Каждое слово на своем месте, все понятно!
Подскажите почему в методе showInfo мы искользуем this
надо тебе погуглить "слово this в java"
Огромное спасибо за уроки!!!! Мне безумно помогло.
После JavaRush уроки воспринимаются легче !!!
Класс. Мне хватило часа чтобы разобраться с понятием интерфейс
Очень интересно и понятно объясняете, спасибо!
В общем, проще сказать интерфейс - шаблон для классов, как класс - шаблон для объектов)
По моему это сложная тема, и я не думал, что всё пойму. Но так как это объяснял ты, я понял тему на 100%.
21:35 здесь понятие про полиморфизм расплылось конкретно, т.к думал, что мы, только (!) при создании объектов типа info, ссылающихся на person и animal, можем использовать метод showInfo, а оказывается не только…
Ты лучший! Очень доходчиво объясняешь!
Спасибо большое за урок! Подскажите пожалуйста, почему при реализации метода schowInfo например в классе Animal: System.out-println("Id is "+this.id); почему "this.id" а не просто " id"?
Можно было написать и просто id, программа бы работала. Однако когда мы пишем this.id, мы явно указываем на то, что мы хотим вывести поле "id" текущего объекта.
Есть такие случаи, когда просто id не сработал бы.
Пример:
public void showInfo() {
int id = 0; // объвили переменную в методе
System.out.println(id);
}
Вот в этом, случае, когда у нас есть переменная id внутри метода, если мы напишем просто id, мы выведем эту переменную, а не поле id. Если же мы хотим вывести именно поле объекта, то мы должны писать this.id.
@@alishevN здравствуйте, можете пожалуйста объяснить оператор "return", никак не могу понять его(( Даже из вашего видео не понял😨 А именно не могу выяснить - Что это такое? Как он работает? Зачем он возвращает значение и для чего?
Чётко и ясно объясняет. Спасибо
Пожалуйста.
Уважаемый автор поясните пожалуйста как у вас интерфейс стал контрактом между самим интерфейсом и классом его имплементирующим?
Доступно, понятно. Спасибо! Один вопрос. Может направите на какой-нибудь толковый, по вашему мнению. ресурс, где можно взять не очень сложные задачки и проходя ваши уроки попытаться их прорешать?
javarush
Получается интерфейс отличается от абстрактных методов в абстрактном классе только тем, что как бы аккумулирует все методы, которые нужно обязательно переопределить. Это визуально удобнее и более упорядочивает проект
почему вы сравниваете интерфейс с методами?
@@Das.Kleine.Krokodil для тех, кто только знакомится с интерфейсами и абстрактными методами, последние мало различимы
@@vladimirfortushin7976 мм.. ну сравнить интерфейс с классом норм и перепутать. но не с методом
@@Das.Kleine.Krokodilа, понял, не с классом, а с методом, ошибся. My bad
Спасибо за качественные уроки!!!!!
я вот не понимаю, почему в ВУЗЕ нет вот таких преподавателей, которые умеют объяснять хорошо.
Как так получается, что мы вызываем нестатический метод showInfo в статическом методе outputInfo? И почему при этом нет ошибки компиляции?
outputInfo в качестве аргумента принимает объект и заставляет этот объект выполнить метод showInfo
Alt + Insert Генерируем код (Getters, Setters, Constructors, hashCode/equals, toString) но не Alt + N
may be he used Mac Book?)
Спасибо тебе!)
16:30 проще говоря, базовый класс может ссылаться на любых своих наследников. это конечно немного не то, но всё же подходит.
объект, не класс,
Отличное объяснение! Большое спасибо!
В последних версиях Идеи нужно нажать контрл + кнопка над принт скрином и откроется окошко создания конструктора, геттеров сеттеров и прочее
Большое спасибо! Очень полезные видео-уроки!
как в 2023 году в IJ создавать конструктор? при нажатии ctrl + N открывается другое окно
p.s. погуглил, ctrl + N это только на маке. на винде и линуксе, чтобы открыть окошко Generate надо нажать Alt + Insert
На каждом уроке понятно абсолютно все, поэтому и купил курс "Продвинутая Java" )
Отличное видео) Огромное вам спасибо
вот сейчас со скрипом зашло)))
круто объясняешь такую сложную тему!
Как я понял интерфейсы это шаблон подключая который мы убираем шанс ошибиться, так как среда будет выдавать ошибку пока мы не реализуем все методы интерфейса в классе к которому мы подключили интерфейс?
курсы огонь! много что стало понятно
привет, все до этого нормально понимал но вот эти интерфейсы меня запутали , я так и не понял зачем они нужны, и когда я должен их использовать? когда я это почувствовать должен что настало время интерфейсов? или вообще есть возможность мне лично объяснить? пожалуйста помогите.
Лучший курс, нашёл и поддержал на Udemy, вместе с продвинутым)
Но вот тут что-то залип
В Person и Animal, когда добавлял "implements Info", info упорно горит красным
Похоже, придется создавать новый пакет и все переписывать туда, прямо по видео, след в след, ибо не могу в толк взять, что же не так
Я также не понимал, просто метод интерфейса нужно писать ручками )))
Прекрасные уроки! Спасибо. Смотрю с удовольствием и многое понял только из них. Появился вопрос следующего содержания (может не совсем к этой теме): будет ли урок по возврату объектов из методов и более подробно про передачу объектов в качестве параметров? Вот вокруг этого у меня сейчас и не выходит вникнуть. Спасибо!
Понимаю, что некропостинг, но я вот только дорос :)
На 12:54 при имплементации метода интерфейса указано переопределение (Override). Вопрос: а зачем оно тут, если в интерфейсе нет реализации метода? Что переопределяется в этом случае? (Не бугурт, просто учусь и пытаюсь разобраться).
Аннотация не обязательна и не отражает сути (многие согласны, что слово Override тут не в тему), но является маркером для компилятора внимательнее приглядеться к функции.
Например, класс С реализует интерфейс А. Интерфейс А при этом расширяет интерфейс B. Мы реализуем в классе С метод из интерфейса А и метод из интерфейса B. Оверрайд не юзаем. В какой-то момент приходим к выводу, что интерфейс А не должен расширять B. Забываем при этом удалить реализацию метода B из класса. Компилим - никаких ошибок. Если же будет стоять слово Override, то компилятор ругнется. Обратит наше внимание.
Очень доходчиво! Большое спасибо!)))
Спасибо за объяснение .
Коротко и ясно. Спасибо)))
А почему для одного класса написано @Override, а для другого нет? Это необязательно прописывать?
@Override написано только в одном случае, где Idea сама добавила нам код для описания реализации интерфейса, в другом случае мы писали всё вручную. Подозреваю, что надпись @Override функционально ни на что не влияет, но помогает нам сэкономить время и даёт понять, что описываем здесь реализация метода имплементированного интерфейса. Поправьте, если я не прав)
Аннотацией @Override следует пользоваться когда вы пишите метод переопределящий другой метод. Без нее вы также можете этот метод переопределить но если в параметрах например будет что-то отличное от переопределямого метода , то вы просто создадите новый метод а не переопределите его и никто вам ничего не скажет а с @Override компилятор выдаст ошибку.
Ну такое, нужно разбираться! Полиморфизм, наследование, каша в голове, нужно уделить внимание этой теме
Уроки просто супер 👍 большое спасибо
Большое спасибо автору за видео)
Ребята!! Не, по теме но какую, кто музыку слушает когда, занимаеца кодом.
1:33 разделяя по "full qualified name". и спасибо за полиморфизм.
Может ли абстрактный класс имплементировать интерфейс?
Мне было очень полезно, Благодарю.
Очень жду разбор коллекций)))
Можно ли наследоваться от класс и от интерфейса одновременно?
Спасибо большое! Вас приятно слушать.
Liiiiike :)
Спасибо! Доходчиво и понятно!!!
Говорят нужно программировать на уровне интерфейсов, что позволяет, что-то типа множественного наследования. Это так?
Нужно ли делать override методов в классе имплемпнтииующем интерфейс?
Спасибо огромное, очень качественно!
зачем в классе test вы создаёте метод main?
программа не будет работать, если ни в одном классе не будет метода main
Спасибо за видео!
Всем привет ребят, подскажите пожалуйста зачем мы у метода outputInfo ставим ключевое слово static? Чтобы не создавать экземпляр(объект) класса Test чтобы использовать этот метод?
Для того, что бы все объекты класса Test смогли его использовать. Я так понимаю.
Наконец-то я понял. Спасибо!
Извините не посмотрел до конца, так как сам уже все это знаю, просто ищу курсы, которые можно посоветовать другим. Возможно вы об этом позже сказали, я не досмотрел, но все таки в интерфейсе можно реализовать методы, то есть можно написать и тело метода, для этого надо в начале написать ключевое слово default, в вашем случаи
default public void showInfo(){
//ваш код
}
Tigran Balayan , и как же их потом использовать?