Клас (програмиране): Разлика между версии

Изтрито е съдържание Добавено е съдържание
{{Типове данни}}, форматиране: 11x А|А, 4x интервали, А|АБ (ползвайки Advisor.js)
правопис
Ред 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++, локален клас може да се обръща към статични променливи декларирани в обгръщащата функция, но не може да достъпва останлитеостаналите променливи на функцията.
 
=== Метаклас ===