То, что вы приводите в пример - динамический полиморфизм. В Java полиморфизм позволяет объектам дочерних классов быть представленными как объекты родительских классов. Например, если есть родительский класс Parent и дочерний класс Child, то можно создать объект Child и присвоить его переменной типа Parent(например, Parent p = new Child();). Java смотрит на тип переменной слева, в данном случае на Parent, и доступ к методам будет ограничен только теми, которые есть в родительском классе, несмотря на то, что фактически объект - это экземпляр Child. Это похоже на ситуацию, когда старший ребёнок отправляется на родительское собрание вместо родителя: хотя он физически - ребёнок, на собрании он должен вести себя как взрослый и не может "баловаться". Мы оставили более развернутый ответ в видео-формате: drive.google.com/file/d/1RaZCThHBRNhw2l-_bNZN1pLPXSaoD9B8/view?usp=sharing
@@catcoding Cпасибо Вам большое, что уделили время и сделали отдельный ролик на эту тему. Очень понятливым языком объяснили этот момент. У вас талант объяснять доступным языком. Благодарю еще раз :)
@@catcoding еще хотел бы уточнить один момент. А почему делается такое и какие это преймущества дает? То есть нельзя например написать A a = new A() или же B b = new B() чтобы не путаться,не смешивая все это? Или это дает преимущества в использовании методов?
Полиморфизм позволяет создавать более гибкие и расширяемые программы, так как один и тот же интерфейс/базовый класс может работать с различными типами объектов. Это снижает сложность кода, улучшает его читаемость и облегчает добавление новых функциональностей без изменений в уже существующем коде. drive.google.com/file/d/1t_Rh6SaJGCEUTw1ASOxMWz9nRDpU1iya/view?usp=drive_link
Спасибо за Ваш труд
Вы топ. Уроки классные. Спасибо)
Сделайте пожалуйста урок по super(). Буду благодарен)
Видео будет чуть позже 🙂
Я не понимаю одну вещь,при создании объектов. Я привык всегда видеть A a = New A(); А что означает например A a = new B(); или же B b = new A(); ?
То, что вы приводите в пример - динамический полиморфизм.
В Java полиморфизм позволяет объектам дочерних классов быть представленными как объекты родительских классов. Например, если есть родительский класс Parent и дочерний класс Child, то можно создать объект Child и присвоить его переменной типа Parent(например, Parent p = new Child();).
Java смотрит на тип переменной слева, в данном случае на Parent, и доступ к методам будет ограничен только теми, которые есть в родительском классе, несмотря на то, что фактически объект - это экземпляр Child. Это похоже на ситуацию, когда старший ребёнок отправляется на родительское собрание вместо родителя: хотя он физически - ребёнок, на собрании он должен вести себя как взрослый и не может "баловаться".
Мы оставили более развернутый ответ в видео-формате: drive.google.com/file/d/1RaZCThHBRNhw2l-_bNZN1pLPXSaoD9B8/view?usp=sharing
@@catcoding Cпасибо Вам большое, что уделили время и сделали отдельный ролик на эту тему. Очень понятливым языком объяснили этот момент. У вас талант объяснять доступным языком. Благодарю еще раз :)
@@catcoding еще хотел бы уточнить один момент. А почему делается такое и какие это преймущества дает? То есть нельзя например написать A a = new A() или же B b = new B() чтобы не путаться,не смешивая все это? Или это дает преимущества в использовании методов?
Полиморфизм позволяет создавать более гибкие и расширяемые программы, так как один и тот же интерфейс/базовый класс может работать с различными типами объектов. Это снижает сложность кода, улучшает его читаемость и облегчает добавление новых функциональностей без изменений в уже существующем коде. drive.google.com/file/d/1t_Rh6SaJGCEUTw1ASOxMWz9nRDpU1iya/view?usp=drive_link
@@catcoding Спасибо Вам большое