Клас (програмиране): Разлика между версии
Изтрито е съдържание Добавено е съдържание
Termininja (беседа | приноси) {{Типове данни}}, форматиране: 11x А|А, 4x интервали, А|АБ (ползвайки Advisor.js) |
Termininja (беседа | приноси) правопис |
||
Ред 34:
=== Абстрактни и конкретни ===
В език, който поддържа нследяването, <b>абстрактен клас</b> или абстрактен основен клас, е клас който не може да бъде наследен, защото е или
Повечето обектно ориентирани езици за програмиране позволяват на програмистите да уточняват кои класове се смятат за абстрактни и няма да позволят на такива да бъдат инстанцирани. Например в [[Java]] и [[PHP]], ключовата дума abstract (абстрактен) се използва. В [[C++|C++]], абстрактен клас е такъв имащ поне един абстрактен метод зададен чрез съответния синтаксис в езика (чиста виртуална функция в C++ езика).
Ред 43:
=== Локални и вмъкнати ===
При някои езици, класовете могат да се декларират в друг обхват (scope) освен в глобалния. Има много видове такива класове.
[[Вътрешен клас|<b>Вътрешен/вмъкнат</b>]] (inner) <b>клас</b> е такъв, който се дефинира в друг клас. Взаимовръзката между вътрешния клас и този, който го обгръща може да се разглежда като друг тип класова свързване. Вътрешния клас обикновено не е нито асоцииран с инстанциите на обгръщащия клас, нито е инстанцииран заедно с него. В зависимост от езика е възможно или не да се извиква вътрешния клас от място извън обгръщащия. Сходна коценпция притежават и вътрешните типове (inner types), също известни като вътрешни типове данни или вложени типове, което е генерализация на концепцията за вътрешни класове. C++ е пример за език, който поддържа и вътрешни класове, и вътрешни типове (чрез <i>typedef</i> декларацията).
Друг тип е <b>локалния клас</b>, който е клас дефиниран вътре в процедура или функция. Това ограничава достъпа до името на класа само в обхвата където класа е зададен. В зависимост от семантичните правила на езика, може да има допълнителни ограничения на локалните класове в сравнение с не локалните такива. Една често срещано ограничение е забраната на локалните класове да достъпват локалните променливи на обгръщащата ги функция. Например в C++, локален клас може да се обръща към статични променливи декларирани в обгръщащата функция, но не може да достъпва
=== Метаклас ===
|