Попаднах на следното описание на IsRoot
, IsAbstract
и IsLeaf
, но не разбирам кога бихте ги използвали.
Извадка от http://www2.sys-con.com/itsg/virtualcd/dotnet/archives/0108/clark/index.htm:
Като поставите отметка в квадратчето IsRoot, вие ограничавате класа да наследява от други класове. Проверката на IsAbstract ограничава класа от инстанциране и принуждава клиентите да инстанцират производен клас за достъп до функционалността на класа. Проверката на IsLeaf показва, че класът е запечатан. Запечатаните класове са ненаследими и помагат да се ограничи дълбочината на веригата на наследяване.
Моето разбиране
- IsRoot изглежда предполага, че е суперклас
- IsAbstract изглежда предполага, че това е абстрактен клас
- IsLeaf е клас, който не може да бъде наследен, но може да бъде създаден.
Може ли някой да ми даде пример от реалния свят на модел, който ги използва? Например мога да си представя клас като „кола“, който е суперклас и е абстрактен, а под него ще имате класове като „Волво“, „Шевролет“ и т.н.