2016-09-25 1 views
-3

У меня есть один базовый вопрос, когда-то мы должны переопределить метод класса Jar API для изменения в реализации, Мой вопрос в том, как этот переопределенный метод получает вызов API-классов. Как API знает новое имя класса, переопределил метод?Метод переопределения в Java API

+0

Пройдите через это сообщение, оно может ответить на ваш вопрос http://stackoverflow.com/questions/1543191/method-overriding-in-java – mhasan

ответ

0

В основном байт-код, сгенерированный для класса, имеет байтовый код для вашего переопределенного метода. Итак, когда вы создаете объект дочернего типа. JVM пойдет вверх в иерархии, чтобы проверить определение метода во время выполнения кода. Если он сначала найдет в дочернем классе, это определение метода будет выполнено иначе, оно перейдет к родительскому классу.

Для маленькой детали: вы можете прочитать в книге: Программирование для виртуальной машины Java

https://books.google.co.in/books?id=dg7bj_e-SAMC&pg=PA87&lpg=PA87&dq=details+of+jvm+overriding+methods&source=bl&ots=3bntcjfJDc&sig=rFo8uOVcwgW0FA1U33QbqiMkuYo&hl=en&sa=X&ved=0ahUKEwir79aAoqrPAhXMvY8KHVY-CPcQ6AEIQjAG#v=onepage&q=details%20of%20jvm%20overriding%20methods&f=false

0

простым языком, когда вы перекрытый метод реализации и когда вызывается метод , JVM будет искать тип объекта, вызывающий метод, и будет искать метод в этом классе. В случае, если метод не будет найден, он выполнит метод, определенный в суперклассе.