Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
a = Ellipse(Point(3,5), 3, Point(4,8), 4)point2 = point1
radius2 = radius1
filled = TrueEllipse:draw(x,y,a,b,c)
{...}
Circle:draw(x,y,R)
{super.draw(x,y,R,R,0);}
окружность имеет бесконечное множество осей симметрии, а значит и горизонтальную с вертикальной и сложные алгоритмы нужны только для четверти окружности.А у эллипса с этим всего вдвое хуже.
Ellipse->setHeight(height);
Ellipse->setWidth(width);
public class CCircle extends CEllipse
{
public function setRadius(Size);
{
parent::setHeight(Size)
parent::setWidth(Size)
}
}

public interface Ellipse {
double getA();
double getB();
}
public interface Circle extends Ellipse {
double getR();
}
public class EllipseImpl implements Ellipse {
public double getA() {...}
public void setA(double a) {...}
public double getB() {...}
public void setB(double b) {...}
}
public class CircleImpl implements Circle {
public double getA() {...}
public double getB() {...}
public double getR() {...}
public void setR(double r) {...}
}
Как бы вы реализовали наследственную связь между классами Эллипс и Круг?