Автоматное программирование
- 1 year ago
- 0
- 0
В объектно-ориентированном программировании подкласс — это класс , наследующий некоторые (или все) свойства от своего суперкласса .
Для простоты можно считать подкласс одним из «вариаций» своего суперкласса, как, например, « Мэнкс — порода кошек», а «квадрат — вид прямоугольника»:
С этой точки зрения, подкласс — это более уточнённая версия его суперкласса; то есть, перечислены факты о кошках, утверждающие что они в общем случае истинны для всех кошек, даже если у некоторых пород нет хвоста. А все прямоугольники имеют четыре стороны, при этом квадрат имеет более узкую трактовку данных характеристик: все эти четыре стороны должны иметь одинаковую длину.
Не стоит путать отношение подкласс-суперкласс с взаимосвязью классов и его объектами (экземплярами). «Экземпляр кошки» говорит об одной конкретной кошке . Кошка породы Мэнкс в таблице продолжает являться классом, поскольку существует множество различных кошек Мэнкса. А если конкретная кошка (экземпляр класса кошек) случайно теряет свой хвост в драке с лисой, то это никак не меняет самого класса кошек. Это будет все равно лишь конкретная кошка, претерпевшая изменения.
Подклассы и суперклассы часто обозначаются как производные или порождённые (derived) и базовые (base) классы соответственно, причём эти термины закреплены создателем C++ — Бьёрном Страуструпом , который нашёл эти термины более интуитивно понимаемыми по сравнению с традиционной номенклатурой названий.
Для более подробного объяснения концепции классов в объектно-ориентированном программировании , смотри статью о классах .