Уроки по Java 24: Overriding - переопределение методов

Поделиться
HTML-код
  • Опубликовано: 11 дек 2024

Комментарии • 34

  • @СейкоСататанори
    @СейкоСататанори 3 года назад +11

    В комментариях к видео почему-то больше информации, чем в самом видео. Понять содержимое видео довольно сложно. Особенно из-за этих постоянных "эээ", "аааа", "ну как бы" и прочих затупов.
    Автору следовало бы написать текст заранее, до снятия видео. Именно текст того, что он будет говорить, а не показывать. Хотя второе тоже было бы неплохо. Ну и "сложно придумать вот так сразу" тоже не мешало бы заранее продумать.
    Не примите это за хейт, троллинг, оскорбление или ещё что в этом же роде, ваши уроки не так плохи, как можно подумать, но вам явно есть куда развиваться.

  • @yarik83men51
    @yarik83men51 3 года назад +4

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

  • @БорисКатовский
    @БорисКатовский 4 года назад +4

    Правильно я понял? Базовый класс может хранить ссылки на любых своих наследников, но не наоборот? И мы могли бы спокойно указать Child child = new Child(); либо Parent child = new Child();

    • @LKcwalk
      @LKcwalk 4 года назад +1

      Да правильно

  • @ЕленаПолякова-ш2ы
    @ЕленаПолякова-ш2ы 2 года назад

    все понятно

  • @aminakarypbaeva5318
    @aminakarypbaeva5318 2 года назад +1

    Ничего не видно(

  • @beaver6430
    @beaver6430 6 лет назад +7

    снова 360 шояп... до етого и 1040 и 720 работало в чем проблемос друже

  • @ВалентинТвардовский

    360 качество(

  • @vlad_yurchenko
    @vlad_yurchenko 6 лет назад +4

    в чем разница между "Parent parent = new Child();" и "Child child = new Child(); " ?

    • @vlad_yurchenko
      @vlad_yurchenko 6 лет назад

      что parent, что child будут иметь доступ к одним и тем же методам, так зачем писать "Parent parent = new Child();" и путаться, если можно написать "Child child = new Child(); " ?

    • @dirakon8819
      @dirakon8819 6 лет назад +14

      Наверное поздно отвечаю, но это нужно для полиморфизма - чтобы через указатель на родителя можно было пользоваться потомками. Например, если от класса Parent наследуется не Child, а два класса: Brother и Sister, то через указатель на Parent можно пользоваться обоими классами. Примерно так:
      "Parent object;
      boolean IsMan;
      //Присовение пола
      if (IsMan)
      object = new Brother();
      else
      object = new Sister();"
      И далее так работать с этим объектом, даже не смотря на то, что в точности неизвестно каким именно классом он является. По крайней мере, так я понимаю.

    • @feel3717
      @feel3717 3 года назад +10

      @@dirakon8819 Наверное поздно отвечаю, но ты ответил не поздно, помог как минимум мне

  • @seerf703
    @seerf703 7 лет назад +14

    часто путаешься в переопределении и перегрузке

    • @sherzodakhmedov6678
      @sherzodakhmedov6678 4 года назад

      Все люди ошибаются и это нормально

    • @darkgrew3663
      @darkgrew3663 4 года назад +1

      @@sherzodakhmedov6678 интересно, есть ли смысл отвечать спустя 3 года?

    • @vip51000
      @vip51000 4 года назад

      @@sherzodakhmedov6678 чтобы правильно понять нужно правильно назвать

    • @atlasua2021
      @atlasua2021 3 года назад

      ни одно и тоже?

    • @vip51000
      @vip51000 3 года назад +1

      @@atlasua2021 нет, перегрузкой называют еще одну версию (или несколько) одного и того же метода. Каждая версия отличается от остальных версии списком аргументов.Сами аргументы могут идентифицировать метод по 3 признакам:
      1.По количеству
      2.По порядку
      3. По типу
      Переопределение это изменение тело унаследованного метода от родительского класса в дочернем классе.
      Как видно, не одно и тоже.

  • @bromgnom
    @bromgnom 7 лет назад +4

    подскажите в чём здесь ошибка??почему не используется строка @Override , int distance= howlong*180;
    public class Car {
    public void start(){
    System.out.println("Pognalu");
    }
    public void stop(){
    System.out.println("Finish");
    }
    public int drive(int howlong){
    int distance = howlong*60;
    System.out.println(distance + " metriv");
    return distance;
    }

    }
    public class JamesBondCar extends Car {
    @Override
    public int drive(int howlong){
    int distance= howlong*180;
    System.out.println(distance + " metriv");
    return distance;
    }
    public static void main(String[] args) {
    Car myCar = new Car();
    myCar.start();
    myCar.stop();
    myCar.drive(2);
    myCar.start();
    myCar.stop();
    myCar.drive(5);
    }
    }

    • @kollinjames6349
      @kollinjames6349 7 лет назад

      Car myCar = new JamesBondCar(); вместо Car myCar = new Car();

    • @bromgnom
      @bromgnom 7 лет назад

      спасибо уже сам разобрался.

  • @maingames5652
    @maingames5652 4 года назад

    Java полноценный язык по програмированию?? или к нему требуется дописать на других языках?

  • @yevheniitaranukha
    @yevheniitaranukha 6 лет назад +1

    360 и ничего не видно
    а на слух очень сложно понять все

  • @oofejvivhb
    @oofejvivhb 3 года назад

    не понимаю, а зачем мудрить и писать: Parent child = new Child()? если можно написать Child child = new Child(). к чему это? вопрос действительно волнует, может я чего-то не понял)
    если кто-то прочитал мой комментарий и знает ответ, не обязательно автор видео, буду рад скорейшему ответу)

    • @husivm
      @husivm  3 года назад

      вот ответ ruclips.net/video/BYu8gT0hGCQ/видео.html

    • @oofejvivhb
      @oofejvivhb 3 года назад

      @@husivm спасибо, прямо сейчас ознакомлюсь

    • @cryptoInNutshellR
      @cryptoInNutshellR Год назад +1

      @@husivm вот совсем не раскрыли таки, почему Parent child = new Child()? если можно написать Child child = new Child().

    • @eugenesavonkin6467
      @eugenesavonkin6467 Год назад +1

      @@cryptoInNutshellR Это пример полиморфизма в действии, т.е. ты ссылаешь объект типа Child на объект типа Parent, в пример можно привести, если ты знаком с коллекциями, то хорошей практикой является написание List list = new ArrayList(), т.к. можно представить себе такую ситуацию, что ты написал код, который работает, используя ArrayList, потом тебе говорят, мол возьми и поменяй код, используя LinkedList, то в таком случае тебе нужно будет просто написать list = new LinkedList(). Т.е. в классе родителя у тебя есть список доступных методов, а конкретная реализация будет справа от слова new. В моем примере у родительского класса List есть просто список тех методов, которые можно вызывать, а конкретную реализацию можно выбирать исходя из твоих задач. Надеюсь не сильно запутал, пытался как-то более к практике применительно рассказать.

    • @cryptoInNutshellR
      @cryptoInNutshellR Год назад

      @@eugenesavonkin6467 огромное спасибо за максимально развёрнутый ответ! теперь стало яснее. нигде так подробно не находил

  • @sergios9522
    @sergios9522 Год назад

    За видео дизлайк, инфа для подготовки к собесу вообще не годится, автор сам не знает чем переопределение от перегрузки отличаются