Важнее научится правильно именовать переменные и объекты: Krug - Disk, Ploshad - Area. Это важно.
На примере класса Krug (остальные фигуры по аналогии).
-Создается полиморфный тип. B данном примере преимущество не заметно, но в реальных проектах может быть много общих методов, которые могут в точности повторяться в классах наследниках.
-public const double Pi = Math.PI; - выкидывается, т.к. создает избыточность
-вместо S = Pi * (r * r); нужно использовать готовый метод Math.Pow
-лучше использовать инициализацию присваиванием double area = Math.PI * Math.Pow(Radius, 2); где это возможно
-методы должны возвращать значение без Console.WriteLine("Shape");, таким образом данный пример можно использовать в приложении WindowsForms, например
-можно добавить конструктор с параметром для инициализации св-ва Radius
class Shape
{
//общие для фигур методы
public virtual string GetShapeName()
{
return "Shape";
}
}
class Disk : Shape
{
public double Radius { get; set; }
public double Area()
{
double area = Math.PI * Math.Pow(Radius, 2);
return area;
}
public double Length()
{
double length = 2 * Math.PI * Radius;
return length;
}
public override string GetShapeName()
{
return "Disk";
}
}