Переопределение метода:
Это не просто вопрос именования, это фундаментальная функция Java.
Он основан на концепции динамической диспетчеризации методов.
Динамическая отправка метода:
Это механизм, с помощью которого вызов перекрывающегося метода разрешается во время выполнения, а не во время компиляции.
Позволяет реализацию полиморфизма в Java.
Как это работает:
Ссылочная переменная суперкласса может ссылаться на объект подкласса.
Когда переопределенный метод вызывается через ссылку на суперкласс, версия метода, который будет выполняться, определяется на основе типа объекта на момент вызова.
Поэтому выбор метода для выполнения происходит во время выполнения.
Важность:
Тип объекта, на который ссылаются (а не тип ссылочной переменной), определяет, какая версия переопределенного метода будет выполнена.
Это позволяет различным типам объектов, на которые ссылается ссылочная переменная суперкласса, вызывать разные версии переопределенного метода.
Структура программы:
Суперкласс: Sup, с методом who().
Подклассы: Sub1 и Sub2, оба переопределяют метод who().
Выполнение в main():
Создание объектов superOb (тип Sup), subOb1 (тип Sub1) и subOb2 (тип Sub2).
Ссылочная переменная supRef типа Sup используется для ссылки на различные объекты.
Поведение:
Вывод программы:
В зависимости от типа объекта, на который ссылаются (superOb, subOb1 или subOb2), вызывается и отображается соответствующая версия метода who().
Это демонстрирует концепцию динамической диспетчеризации, при которой выбор выполняемого метода определяется во время выполнения, что позволяет реализовать полиморфизм.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3