24.07.2007, 14:13 | #1 |
int 20h
|
abstract классы и методы
подскажите пожалуйста, для чего в Аксе введены abstract классы и методы.
Чем вызов метода abstract protected boolean check() отличается от метода protected boolean check() Спасибо.
__________________
It's just my Unhopelessnessabilityerism Trying to debug my mind |
|
24.07.2007, 14:19 | #2 |
Участник
|
если в кратце, то abstract означает, что чтобы его использовать его обязательно нужно перекрыть
|
|
24.07.2007, 14:19 | #3 |
Участник
|
такой метод нельзя вызвать. Ядро выдаст ошибку.
можно вызвать только его небастрактынх потомков. Только учтите, что в 2.5 ключевое слово abstract ввели, но оно не действовало. В 3.0 в некоторых релизах были ошибки с этим ключевым словом (оно не действовало). |
|
24.07.2007, 14:27 | #4 |
int 20h
|
Цитата:
после компилляции компилятор выдает сообщение об ошибке Нельзя создать объект, поскольку абстрактный метод BookDataCalc_RU.check() не реализован.Заходя в этот метод я вижу что он объявлен как abstact protected boolean check() , вот я и задумался для чего его так объявили...(кстати сам метод пустой и никаких проверок не делает). Странно как то.
__________________
It's just my Unhopelessnessabilityerism Trying to debug my mind |
|
24.07.2007, 14:37 | #5 |
Участник
|
Для потомков.
Считайте, что объявили интерфейс. Все методы в Аксапте "знают", что у этого семейства классов есть метод check(). Что у этого метода нет параметров, а возвращает он вот это. Поскольку метод объявлен как abstract, то все методы знают, что напрямую объект этого базового класса создавать нельзя, и вызывать метод базового класса тоже нельзя. Можно вызывать только потомков (кстати, а они вызывать метод базового класса могут через super). Думаю, что стоит почитать книжки по ООП. Это стандартная методика работы в объектно-ориентированной парадигме. |
|
24.07.2007, 14:42 | #6 |
MCT
|
Класс с модификатором Abstract или abstract метод действуют противоположно по отношению к действию модификатора final. Использование abstract класса - это планирование наследования и последующее создание класса наследника. Отдельно метод в классе не может быть объявлен как abstract. Это используется в стандартной конфигурации для родительских (super) классов для запрета ошибочного объявления объекта родительского класса. Класс SalesFromLetter использует эту методику
|
|
Теги |
ax2.5, ax3.0 |
|
Похожие темы | ||||
Тема | Ответов | |||
Методы таблицы в DataSources (DAX4) | 2 | |||
Найти display методы | 12 | |||
axcoder: Dynamic analog of abstract macro | 0 | |||
axcoder: Abstract macro | 0 | |||
display-методы в группах | 2 |
|