Re[3]: Математика и ООП: аналогии
От: Кирилл Осенков Украина
Дата: 03.11.03 13:49
Оценка: +2
DG>Эллипс — базовый класс, круг наследуется от эллипса.
Лично я не стал бы связывать эллипс и окружность отношением "подтип". Они оба реализуют интерфейс "эллипс" — это да. Объект типа эллипс может в очень частном случае оказаться окружностью, более того, у него может быть конструктор, инициализируемый объектом типа "окружность". Но способ задания разный.

DG>Все операции для эллипса доступны и для круга.

Ну не знаю. А операция "сжать в n раз к большей оси? А как насчет провести прямую через фокусы?

DG>Также у круга есть дополнительные операции.

Круг — подтип эллипса — навязывает задание фокусами и эксцентрисситетом (или полуосями, или еще сотней способов — но не центром и радиусом). Если мы хотим эффективно обращаться с окружностями, их просто необходимо задавать центром и радиусом, иначе это будет очень неестественно.

DG>Я бы даже сказал, что круг поддерживает интерфейс эллипса, а не наследуется от эллипса, т.к. хранить те же два фокуса уже не надо.

Во. Это да.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.