![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Классы
Belorus © (2007-04-14 08:34:00)Есть массив элементов TMyClass...
Каждый элемент если точно является наследником этого класса, то есть является либо TMySubclass1 либо TMySubclass2..
У обеих субклассов есть метод Method1 с одинаковыми аргументами, но с разным кодом. У класса TMyClass этого метода нету.
Как мне вызвать этот метод у всех элементов массива, если подклассов будет скажем не 2 а 2000 ? Можно ли как нибудь объяснить компилятору, что у всех субклассов TMyClass есть этот метод , и соответственно не делать такую процедуру
If Array1[Temp] is TMySubclass1 then TMySubclass1.Method1;
If Array1[Temp] is TMySubclass2 then TMySubclass2.Method1;
If Array1[Temp] is TMySubclass3 then TMySubclass3.Method1;
_Аноним (2007-04-14 10:59:00) [1]
> У класса TMyClass этого метода нету.
Сделай его TMyClass, но абстрактным (без реализации) ,а в потомках переопредели.
Kolan (2007-04-14 10:13:00) [2]> Сделать промежуточный класс с виртуальным абстрактным методом
> Method1
А почему бы не сделать тоже самое, но без промежуточного класса? Те прям в предке
MBo (2007-04-14 08:49:00) [3]Сделать промежуточный класс с виртуальным абстрактным методом Method1, подклассы наследовать от него, и в кажом реализовать этот перекрытый метод.