Уроки Java с нуля / #15 - Полиморфизм в ООП

Поділитися
Вставка
  • Опубліковано 23 гру 2024

КОМЕНТАРІ •

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

    Спасибо, очень информативно!

  • @ОлегРудой-с8ы
    @ОлегРудой-с8ы 2 роки тому +17

    3:23 Пришлось поломать голову почему код выводит первичные значения. Получается, что сначала выводятся getValues из конструктора, дальше строка "Наш второй метод" из нового метода setValues, но новых установленых значений мы не видим, так как нет команды для их вывода.

    • @squyzyyyfaer2652
      @squyzyyyfaer2652 2 роки тому +1

      спасибо большое! очень помогли в этот момент

    • @АбдуррахманМухаммад
      @АбдуррахманМухаммад Рік тому

      Спасибо большое!

    • @anatoliuyanouski3213
      @anatoliuyanouski3213 Місяць тому

      так попробуй вывести, тут выводить нечего 5-й параметр boolen который используется в методе. я вообще не понял. пятый параметр вывести можно только через вызов метода setLoader

  • @MrKrol1ks
    @MrKrol1ks 5 місяців тому

    Спасибо большое вам за такие крутые уроки, начал изучать java чтобы создавать моды для minecraft да и вообще, давно хотел изучить уже... уроки топ!

  • @АбилкасымМуханбеткали

    2:57 он сказал "некоторые классы удалим" но он ведь удалил объект я правильно понял?

  • @amrullahsahmaliyev9978
    @amrullahsahmaliyev9978 3 роки тому +8

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

  • @King-ev3hl
    @King-ev3hl Рік тому +3

    Здравствуйте, спасибо за ваши уроки! По данному уроку возник вопрос, как же все-таки изменить метод setValues через @Override ? Как добавить параметр?

    • @kk_nurkanar
      @kk_nurkanar 11 місяців тому

      Просто создать такой же метод в наследственном классе

  • @ЮрийКачанов-я5ф
    @ЮрийКачанов-я5ф 23 дні тому

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

  • @NiconD80
    @NiconD80 4 місяці тому

    Да как некоторые комментаторы по 2-3 дня над видео сидят? Тут же всё банально просто - хочешь в наследнике использовать метод родителя, но с каким-то новым кодом используй override. Добавишь в метод новый параметр - это уже абсолютно новый метод, overide не надо. Всё. Можно пару примеров поделать, для закрепления.
    Не нравятся методы set get? Допишите свои, поиграйтесь с кодом. Не надо втупую копировать

  • @dmitrysavkin5981
    @dmitrysavkin5981 2 роки тому +18

    setValues с 5 параметрами - это перегрузка, а не переопределение. Тут полиморфизма нет

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

    Как быстро всё это

  • @MarselGaisin
    @MarselGaisin 2 роки тому +64

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

    • @MarselGaisin
      @MarselGaisin 2 роки тому +17

      Я думаю, это можно заметить даже по просмотрам. Когда началась это огромная программа с траками и карами, просмотры просели в два раза, потому что это невозможно понять. Это ни в коем случае не осуждение!!! Огромная благодарность за уроки. С первого по 11 урок все просто идеально рассказывается и , что немаловажно, понимается.

    • @ОлегРудой-с8ы
      @ОлегРудой-с8ы 2 роки тому +15

      Лично у меня с этим не возникло проблем вообще. Даже понравилось, что не нужно каждый раз придумывать новые условия, а все объекты уже знакомые тебе.
      Ну и да, все видео я пересматривал не единожды. Часто на осознание ролика в 15 минут требовалось пара дней, но я недостаточно много уделял этому времени

    • @bonemark
      @bonemark 2 роки тому +1

      Таким образом есть представление о написании любого ПО/Игры
      Так как раз и нужно уроки писать, на одном пример разбирается ООП (Который и подразумевается на один проект)
      Просто нужно вести записи всего обучения, чтобы вернуться к моменту остановки

    • @АртемБатьков-м6ю
      @АртемБатьков-м6ю 2 роки тому +4

      Согласен на все 100%. Даже если учитывать, что я знаю всё об ООП из с++, выходит полная каша, когда он скачет по трем файлам. Нужно показывать новые примеры, а не пытаться одинаковый код растягивать на 4 видео.

    • @GorN_Rebel
      @GorN_Rebel 2 роки тому +3

      @@ОлегРудой-с8ы если ты потратил на понимание элементарных вещей два дня, вместо того, чтобы разобраться на уроке, то это как раз показывает, что видео-урок сделан плохо. При просмотре хорошего урока ты сразу вникаешь в суть, как например несколько уроков ранее этого же автора

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

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

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

    Привет! Можно пожалуйста курс C# под Godot.

  • @GorN_Rebel
    @GorN_Rebel 2 роки тому +24

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

    • @beautyisinternal6953
      @beautyisinternal6953 2 роки тому +5

      Согласна, столько строк и везде одно и то же пишем и передаём, все эти параметры и строки по тысячу раз везде указываем, теряется связь где какая ссылка и для чего, если везде одно и то же указываем

    • @TheEBPO
      @TheEBPO Рік тому +4

      Это слишком маленький код чтобы путаться... в работе будет в десятки и сотни раз больше...

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

      @@TheEBPO это слишком большой код для обучения. Прошёл курс у другого человека и начал понимать и больше кода и лучше, чем здесь вообще показано

    • @TheEBPO
      @TheEBPO Рік тому +4

      @@GorN_Rebel Согласен с тем что это не самый понятный код для обучения, к тому же this. надо было указать сразу и обьяснить т.к. _speed _ weight .. с нижним подчеркиванием это зашквар.

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

      @@GorN_Rebel Про какие курсы говоришь?

  • @Даниил-д6м9т
    @Даниил-д6м9т Рік тому

    А каким образом переписанный метод getValues с Override стал виден из класса Main, если модификатор так и остался протектед?

    • @Даниил-д6м9т
      @Даниил-д6м9т Рік тому +6

      Разобрался. Protected - виден внутри пакета. Странно, я вроде как не помню, что бы автор об этом говорил

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

      Делал небольшое пояснение
      @@Даниил-д6м9т

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

      @@Даниил-д6м9т в комментах где то мб увидел, писали

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

      Тот же вопрос, почему когда он вызывал сетвалуес с 4 параметрами то оно работало хотя там протектед,

    • @Voxert
      @Voxert Рік тому +3

      @@byesedd протектед доступен во всех классах находящихся в одном пакете

  • @dima4132
    @dima4132 2 роки тому +2

    Произошёл баг пишет что не может найти Boolean у меня в коде в итоге создал SetValues в транспорте и все

  • @SadSmile-k7u
    @SadSmile-k7u Рік тому

    так а зачем нужно переписывать если все ровно будет так как будто мы написали новый метод ?

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

      быстрее, оптимизированнее

  • @kydrish
    @kydrish Рік тому +2

    Я просто дальше не понимаю о чем он

  • @orexendye
    @orexendye 10 місяців тому +1

    Если честно, начиная с 12 и далее уроков мое понимание их стремительно идет вниз. Объясняешь очень сложно, непонятно, для чего все эти способы, переписывания и тд тупо нужно. Начал подробно пересматривать уроки, гуглить другие видео, чтобы понять, в чем суть. Это все можно было бы показать в коде в 20 строк, который не усложнен миллионом других методов, и так далее. Также явно не помешали бы примеры использования этого. Очень сложно понимать, но за уроки спасибо

  • @kellerzell
    @kellerzell 2 роки тому +3

    Не понимаю зачем это может понадобиться если ты 20 раз вернулся к классу родителю скопировал всё от туда и написал заного. Почему просто не дописать что нужно сразу в класс родитель. Раскидывание одного метода часть тут часть там переписано может ещё где что есть. Зачем эта паутина из связок скакать туда сюда. Какой в этом смысл? Лишнюю строчку написать чтоб код объёмнее казался?

    • @Upiter-hv4il
      @Upiter-hv4il 2 роки тому +1

      Намного проще, не прийдётся постоянной проверять весь "транспорт", класс будет работать только с тем который его вызовет

    • @КайырТанирберген
      @КайырТанирберген 2 роки тому

      Если ты будешь постоянно использовать какой то вычисление снова и снова . Лучше иметь под рукой готовый код с этим вычислением что бы его сново не писать .

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

      @@КайырТанирберген согласен, мы же не на рулоне туалетной бумаги код пишем. Нужный нам код может находиться буквально в соседней вкладке. Клик и меняй/дополняй как хочешь. Наверно мне нужен другой учитель раз я по объяснениям в этом ролике не понимаю на кой это нужно. 😅

    • @RusIvan2022
      @RusIvan2022 2 роки тому +1

      @@kellerzell поверь мне друг, работая после выходных ты откроешь свой код и даже не вспомнишь где ты что писал. Некоторые вещи в программировании делаются для того что бы легче было обслуживать приложение, добавлять что то, убирать. Ты можешь вообще даже не использовать наследование и будет все работать. Но в один прекрасный день тебя попросят изменить какой то метод, а у тебя этих классов 10 штук и тебе нужно будет в 10 файлах вносить изменения. И тогда ты все равно придешь к наследованию или интерфейсам и так далее. Солид посмотри принципы - они как раз из той серии что бы легче обслуживать. Если конечно у тебя не один клас и 5 методов)

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

    Я потерялся

  • @Rommel7755
    @Rommel7755 Місяць тому +1

    Ну что сказать. Это не полиморфизм а обычное переопределение методов в классах наследниках. Автор возьми книжку по Java что ли, прочти про полиморфизм прежде чем учить кого-то.

    • @ЮрийКачанов-я5ф
      @ЮрийКачанов-я5ф 23 дні тому

      я тоже тут полиморфизма не заметил... может он у каждого свой?)

    • @b_o_r-d5d
      @b_o_r-d5d 12 днів тому

      не могу понять, если ты уже знаешь ООП, то зачем смотришь уроки для начинающих? это не доёб, а просто реально интересно.
      и тут таких несколько, кто говорит, что это не полиморфизм. Я тоже чую, что что-то тут не так, но я до этого не изучал эту тему

    • @Rommel7755
      @Rommel7755 12 днів тому

      @@b_o_r-d5d Просто попалось видео - решил посмотреть как тема освещена. Вот и все.

    • @ЮрийКачанов-я5ф
      @ЮрийКачанов-я5ф 12 днів тому

      @@b_o_r-d5d, это курс лекций по Java. Для меня это новый язык, вот и смотрю.

    • @b_o_r-d5d
      @b_o_r-d5d 11 днів тому

      @@ЮрийКачанов-я5ф так я вообще не тебе писал

  • @TouchToAirdrops
    @TouchToAirdrops 4 місяці тому

    херня