Цитата:
Сообщение от
wojzeh
Wrapping a base method in an extension of a derived class
The following example shows how to wrap a base method in an extension of a derived class. For this example, the following class hierarchy is used:
Здравствуйте, wojzeh. Спасибо за ответ. У меня немного другая ситуация: у меня нет COC, но есть extension для базового класса и extension для наследника. Если переменная объявлена как базовый класс, но в realTime инициализируется как наследник, то extension все равно вызывается для базового класса.
(Thank you for your answer. I have the different case: I havn't COC. I have extensions for parent class and for a child. Both extensions has the same method. A class variable declared as a parent class, but initialized as a child. The system invokes extension for the parent class)
X++:
class A
{
}
class B extends A
{
}
[ExtensionOf(classStr(A))]
final class A_Extension
{
public void salute()
{
info("A extension");
}
}
[ExtensionOf(classStr(B))]
final class B_Extension
{
public void salute()
{
info("B extension");
}
}
X++:
class Test01
{
public static void main(Args _args)
{
A a;
a = new B();
a.salute();
}
}
В результате получим "A extension".