Мышление в полиморфизме в Java3
Люди часто сбиваются с толку другими, не ориентированными на объект Java, таких как перегрузка методов, которые иногда представляются как объектно-ориентированные. Не обманывайте себя: если это не поздно, это не полиморфизм
Перевод по тексту
Люди всегда смущаются еще одной функцией Java, не ориентированной на объект, например, перегрузки методов. Иногда это существует как объектно-ориентированное. Пожалуйста, не будь глупым. Если нет позднего связывания (то есть динамического связывания во время выполнения), оно не является полиморфным.
Следовательно, этот отрывок хочет выразить, так это то, что полиморфизмы должны иметь динамическое связывание, в противном случае это не полиморфизм, а перегрузка метода не является полиморфизмом (поскольку перегрузка метода определяется в течение периода компиляции, и в более позднем периоде нет динамического связывания, то есть периода времени выполнения)) периода выполнения)).
Когда эти три условия будут выполнены 1. Есть наследование 2.
<span style = "font-size: 14px;"> Пример: публичный адрес класса {private String name; public address (string name) {this.name = name;} public String getName () {return name;} public void setName (string name) {this.name = name;}} определить класс базового класса): общедоступный класс. extends athrate {@OverridePublic void go (адрес Адрес) {System.out.println ("car to" + address.getName ());}} Плона реализует базовый класс: Общедоступный класс плоскость расширяет {@Overridevoid GO (адрес адрес) {System.Out.println ("PURTADE THERID -indrade.GEDNAME (); v) {/// Полиморфизм, ориентир родительского класса указывает на объект подкласса, а фактическая передача является подклассом абстрактного класса класса или класса реализации, а компилятор найдет метод реализации на основе конкретного класса реализации. v.go (новый адрес ("Hangzhou (Abstract)")); /// Этот метод переписывается в конкретной реализации} Тест: Public Static void Main (String [] args) {Driver D = New Driver (); D.Drive (New Slane ()); // Это на самом деле плоский объект, тогда компилятор найдет реализацию GO в плоскости, D.Drive (New Car ()); // Это на самом деле автомобильный объект, тогда компилятор найдет реализацию GO в плоскости} Результат выхода: плоскость к Hangzhou (абстрактный) автомобиль в Hangzhou (Abstract) </span>Полиморфизм: относится к разным состояниям одного и того же, например: вода. Вода может иметь три состояния:
Газ, жидкости и твердые вещества. Тогда полиморфизм в Java также можно понять как это значение:
Техника, чтобы установить родительский объект равным одному или нескольким его дочерним объектам,
Например, родитель = ребенок;
Полиморфизм позволяет ссылаться на объекты разных классов, используя один и тот же класс (родительский класс),
И выполнять одну и ту же операцию по -разному в зависимости от указанного объекта.
Полиморфная реализация включает в себя два способа: перегрузка и перезагрузка
Например: животное a = new Tiger (); Это старая тема, ха -ха ...
Ссылка на родительский класс указывает на объект класса дочернего класса. Класс животных содержит метод eat (), а класс тигра наследует от
Класс животных, если подкласс переписывает метод eat () родительского класса, то при вызове вы можете следовать за детским классом.
Формальный призыв, по сути, является методом родительского класса, но после перезаписываемого подкласса, он становится другим способом, а это полиморфизм.
Вышесказанное - краткое обсуждение того, какие аспекты реализации полиморфизма Java в основном отражаются. Я надеюсь, что это будет полезно для всех и поддерживать wulin.com больше ~