2014-01-17 3 views
0

Я знаком с практическими аспектами ООП. Теперь я пишу технический документ, и я задаюсь вопросом о моем использовании терминов.Номенклатура: отношения типа в ООП

enter image description here

Возьмите эту иерархию классов. Каждый класс имеет нулевые, одно и более (множественные наследования) классы, из которых он непосредственно происходит. Для B это A. Я бы сказал, что A есть B базовый класс или суперкласс (взаимозаменяемо).

И наоборот, класс может иметь любое количество классов, непосредственно вытекающих из него. Я бы сказал, что B и C - это производные классы A или подклассы, снова взаимозаменяемые.

Все же должен существовать термин для обозначения всех классов класса прямо или косвенно наследуется от. Как бы вы назвали {A, B} с точки зрения D?

И я пропустил еще один термин для всех классов прямо или косвенно, производный от класса. Как бы вы назвали {B, C, D, E} с точки зрения А?

+0

Вы слишком задумываетесь об этом. _Derived_, _child_, _subclass_ - все действительные термины, которые говорят вам о том, что класс B/C/D/E наследует A. Прямого или косвенного потомка, это не имеет значения на практике из-за Принципа замещения Лискова – MikeSW

ответ

0

Хорошие вопросы. В этом случае A является корневым классом , так как все остальные классы наследуют его. Все объекты спускаются с из A или являются либо прямыми, либо косвенными подклассами A. Обратное также верно. B - прямой суперкласс D, а A - косвенный суперкласс. Полагаю, вы могли бы использовать слово предка как противоположность спуска/потомка, но я этого раньше не видел.

+0

Это будет означать, что термин «подкласс»/«суперкласс» сам по себе неоднозначен. Чтобы быть конкретным, нужно было бы сказать «прямой» или «косвенный» подкласс/суперкласс. Имеет смысл для меня. –