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

Изтрито е съдържание Добавено е съдържание
Tir256 (беседа | приноси)
Tir256 (беседа | приноси)
Ред 45:
 
=== Метаклас ===
<b>Метакласовете</b> са класове чиито инстанции са класове. Метакласовете описват обща структура на колекция от класове и могат да имплементират дизайн модел (design pattern) или да опишат определени видове класове. Метакласовете са често използвани за описване на фреймуърци (frameworks).
 
При някои езици, като Python, Ruby или Smalltalk, класа е също и обект; поради тази причина всеки клас е инстанция на уникален метаклас, който е вграден в езика. Например в Objective-C, всеки обект и клас са инстанция на NSObject. Например така наречената Common Lisp Object система (CLOS) осигурява метаобектови протоколи (metaobject protocols – MOPs) за да имплементира тези класове и метакласове.
 
=== Ненаследими ===
''Ненаследимите'' класове (класове без подкласове) позволяват на програмистите да създават класове и архитектури от класове, които след дадено ниво да не могат да се разклоняват повече.(''Самостоятелните'' класове също може да се третират като ненаследими, защото не позволяват да се създават йерархични структури с тях). За сравнение ''абстрактните'' класове предполагат, насърчават и дори изискват разклоняване (създаване на подкласове), за да се използват въобще. ''Ненаследимите'' класове обаче са изрично фиксирани.