В Java изменения в базовом классе влияют на байт-код подкласса?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 В Java изменения в базовом классе влияют на байт-код подкласса?

Сообщение Anonymous »

Привет, ребята, кто-нибудь может мне помочь с этим?

Сценарий:

Для контекста посмотрите мой предыдущий пост.
Как исправить программу Java?

По сути, в моей компании, если мне приходится повторно развертывать программу, мне разрешено обновлять только определенные классы. Это означает, что я должен предоставить скомпилированный класс администратору и сообщить ему, где следует разместить эти файлы.

Вопрос:

Теперь мой вопрос: у меня есть класс с именем ClassA, который расширяется за счет ClassB, ClassC и ClassD. В классе A есть метод с именем genericMethodA(), внутреннюю реализацию которого я хотел бы изменить.

Пример

Код: Выделить всё

// old implementation in ClassA
public void int genericMethodA()
{
return 50;
}

// change to this implementation in ClassA
public void int genericMethodA()
{
return 100;
}

// Method in ClassB, ClassC, and ClassD
public void logB()
{
log.info(genericMethodA());
}
Изменится ли байт-код для ClassB, ClassC и ClassD? Итак, если я поместил недавно скомпилированный ClassA.class в свой старый JAR/ WAR, когда ClassB, ClassC и ClassD вызывают genericMethodA(), он вернет 50 или 100.

Также кто-нибудь может указать документацию, как Java компилирует код. Например, когда класс расширяется, компилятор помещает инструкции в байт-код подкласса или просто указывает на базовый класс.

Ребята, пожалуйста, не стесняйтесь комментировать. если вам нужна дополнительная информация или разъяснения по моему вопросу.

Подробнее здесь: https://stackoverflow.com/questions/200 ... e-subclass
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»