X++: наследование 1
[id:029]
Наследовать класс можно только от одного класса.
Создаем класс BLG29_ClassBase с конструктором:
class BLG29_ClassBase
{
int iMyVar;
void new()
{
iMyVar = 123;
print 'constructor of base class';
}
}
Создаем дочерний класс BLG29_ClassChild, туда же помести метод main(). Внимание на слово "extends":
class BLG29_ClassChild extends BLG29_ClassBase
{
// конструктор класса
void new()
{
super();
print 'constructor of inherited class';
}
int getMyVar()
{
return iMyVar;
}
static void main(Args _args)
{
BLG29_ClassChild cls;
cls = new BLG29_ClassChild();
print cls.getMyVar();
pause;
}
}
Слово "super" в конструкторе класса BLG29_ClassChild вызывает конструктор родительского класса BLG29_ClassBase.
Конструктор класса BLG29_ClassBase не запускается автоматически, попробуй закомментировать строку с вызовом super() в конструкторе класса BLG29_ClassChild.
Получишь:
Итог
- наследование задается с помощью слова «extends»;
- наследовать можно только от одного класса;
- модификаторы доступа (public, protected, private) при наследовании не задаются (как в .NET);
- доступ к перегруженным методам базового класса из дочернего — через волшебное слово "super";
Комментариев нет:
Отправить комментарий