Показать сообщение отдельно
Старый 21.04.2025, 14:48   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,711 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Если я правильно понял, о чем речь

Class_1 - Method_1
Class_1_1 - Method_1 (super())
Class_1_1_1 - Method_1 (super())

Переименовываем в базовом классе Class_1 метод Method_1 в Method_2

С точки зрения Axapta произошло следующее

Class_1
1. Удалили метод Method_1
2. Создали метод Method_2

Class_1_1
1. В существующем методе Method_1 указан super(), но в родителе Class_1 метода Method_1 уже нет - ошибка

Class_1_1_1
1. В существующем методе Method_1 указан super(). В классе-родителе Class_1_1 метод с именем Method_1 существует - ошибки нет

Но! Тут есть "тонкость". В классе-родителе Class_1_1 метод Method_1 содержит ошибку. А вот как интерпретировать факт наличия/отсутствия метода в классе-родителе, если он содержит ошибку - вопрос не однозначный.

Скорее всего, любая модификация класса Class_1_1_1 (например, изменение регистра в названии класса) приведет к перезапросу интерфейса класса-родителя. И хотя физически метод Method_1 в классе-родителе есть, но он содержит ошибку. Значит, обращение к нему в super() также будет ошибкой.

Т.е. некая логика во всем этом есть.

PS: Честно говоря, не вижу проблемы. Ведь Class_1_1 все-равно придется поправить. И после правки, уже гарантировано будет ошибка в Class_1_1_1
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...