Почему полиморфизм так работает? В общем только пытаюсь в нем разобраться. Как я понял есть скажем суперкласс one и пораженный от него класс two. Получается я хочу написать следующее: one x = new two(); Работать могу с методами в two только которые не затрагивают строки добавленные в пораженном классе two. Точнее не затрагивают а не изменяют строки в поражденном классе ведь я могу в параметрах создания объекта указать какие параметры мне нужно задать и работать я как бы смогу с ними. Почему и в чем вообще смысл полиморфизма?
Полиморфизм в объектно-ориентированном программировании позволяет использовать объекты различных классов, унаследованных от одного суперкласса, в качестве одного и того же типа данных. Это значит, что на этапе компиляции неизвестно, какой именно тип объекта будет использоваться, но он будет правильно определен только во время выполнения программы.
Смысл полиморфизма заключается в том, что он позволяет писать более гибкий и удобный код. Например, если у вас есть несколько классов, унаследованных от одного суперкласса, вы можете создавать объекты этих классов и использовать их как объекты суперкласса. Таким образом, можно создавать обобщенные методы для работы с объектами разных типов, не зная заранее, какой именно тип объекта будет использоваться.
В вашем примере, когда вы создаете объект типа two и присваиваете его переменной типа one, вы можете обращаться к методам, определенным в суперклассе one, но не можете обращаться к методам, определенным только в классе two. Однако, если вы хотите использовать методы, определенные только в классе two, вам нужно будет явно привести объект к типу two.
Таким образом, полиморфизм позволяет писать более гибкий и масштабируемый код, облегчает работу с различными типами объектов и упрощает его расширение в будущем.
Полиморфизм в объектно-ориентированном программировании позволяет использовать объекты различных классов, унаследованных от одного суперкласса, в качестве одного и того же типа данных. Это значит, что на этапе компиляции неизвестно, какой именно тип объекта будет использоваться, но он будет правильно определен только во время выполнения программы.
Смысл полиморфизма заключается в том, что он позволяет писать более гибкий и удобный код. Например, если у вас есть несколько классов, унаследованных от одного суперкласса, вы можете создавать объекты этих классов и использовать их как объекты суперкласса. Таким образом, можно создавать обобщенные методы для работы с объектами разных типов, не зная заранее, какой именно тип объекта будет использоваться.
В вашем примере, когда вы создаете объект типа two и присваиваете его переменной типа one, вы можете обращаться к методам, определенным в суперклассе one, но не можете обращаться к методам, определенным только в классе two. Однако, если вы хотите использовать методы, определенные только в классе two, вам нужно будет явно привести объект к типу two.
Таким образом, полиморфизм позволяет писать более гибкий и масштабируемый код, облегчает работу с различными типами объектов и упрощает его расширение в будущем.