И все-таки квадрат это прямоугольник
От: igna Россия  
Дата: 03.03.07 07:48
Оценка: +6
Все-таки математика права, квадрат это прямоугольник, и в приведенном ниже коде (на Java) нет ничего неприличного:

class Rectangle {
    int width, height;

    public Rectangle(int width, int height) {
        this.width = width;
        this.height = height;
    }
    public int Width() {
        return width;
    }
    public int Height() {
        return height;
    }
}

class Square extends Rectangle {
    public Square(int side) {
        super(side, side);
    }
}


А если захотелось добавить методы SetWidth и SetHeight, так это уже нечто за пределами математических понятий "квадрат" и "прямоугольник". В математике объекты (не в смысле ООП объекты, нет, в обычном, человеческом смысле объекты), так вот, в математике объекты как правило неизменные, то есть умножая одну матрицу на другую получаем третью, а вовсе не модифицируем первую. В программировании такие объекты тоже встречаются, например String в Java или .NET; и если Rectangle и Square определить неизменными, они вполне могут быть связаны отношением наследования.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.