Что является противоположностью базового класса в ООП? - PullRequest
10 голосов
/ 14 ноября 2011

В объектно-ориентированном программировании «базовый класс» - это класс, из которого были получены другие классы (http://en.wikipedia.org/wiki/Base_class).

Однако, что является противоположностью базового класса? Другими словами, что такое класскоторые НЕ имеют дочерних классов с именем?

РЕДАКТИРОВАТЬ: я ищу имя класса, который не был подкласс, YET, в рамках наследования дерева нескольких родительских классов, начиная с базыкласс.

Ответы [ 5 ]

16 голосов
/ 14 ноября 2011

Базовый класс - это относительный термин.Он применяется только при рассмотрении одного из его производных классов.Вот некоторые термины, которые я считаю противоположными (и в основном ортогональными между собой):

  • базовый класс против производного класса;аналогично супер класс против подкласса
  • абстрактный класс против конкретного класса
  • корневой класс против листового класса
  • закрытый (также, окончательный) класс против наследуемого (незапечатанного) класса
  • вложенный класс против класса верхнего уровня

Абстрактные и (обычно) корневые классы предназначены для использования в качестве базовых классов.Запечатанные классы не могут быть базовыми классами, потому что они не наследуются.Корневой класс - это класс без базового класса (в C # и Java этот класс равен Object).Конечный класс не имеет подкласса, поэтому он не является базовым классом;но это не обязательно запечатано.Запечатанные классы, с другой стороны, всегда листовые классы.

Итак,

Я ищу имя класса, который не был подчиненным-классированный, ДА

Кажется, вы ищете листовой класс , , но я не считаю его противоположностью базовому классу .

4 голосов
/ 14 ноября 2011

Я обычно слышу лист класса. Java применяет это с final.

3 голосов
/ 14 ноября 2011

Это можно назвать листовым классом.

http://en.wikipedia.org/wiki/Leaf_class

1 голос
/ 14 ноября 2011

Я запечатал класс, не должен наследовать ни от чего.Для меня противоположность базового класса будет производным классом, но, будучи производным классом, не исключает его наследования от.

Но звучит так, будто ответ Карла Т., вероятно, былищу.

1 голос
/ 14 ноября 2011

В C # они называются запечатанными классами.Вы можете использовать ключевое слово sealed, чтобы указать, что класс не должен быть унаследован от.VB использует ключевое слово NotInheritable.Википедия называет их не подклассами .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...