double CalculatePerimeter();
void ShowArеaAndPerimeter();
abstract public class Shape : Calculable
protected double perimeter;
abstract public double CalculateArеa();
abstract public double CalculatePerimeter();
public void ShowArеaAndPerimeter()
perimeter = CalculatePerimeter();
Console.WriteLine("area = " + arеa);
Console.WriteLine("perimeter = " + perimeter);
public class Circle : Shape
public Circle(double radius)
public override double CalculateArеa()
return Math.PI * radius * radius;
public override double CalculatePerimeter()
return 2 * Math.PI * radius;
Console.WriteLine("radius = " + radius);
public class Triangle : Shape
public Triangle(double a, double b, double c)
public override double CalculateArеa()
double p = (a + b + c) / 2;
return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
public override double CalculatePerimeter()
Console.WriteLine("a = " + a);
Console.WriteLine("b = " + b);
Console.WriteLine("c = " + c);
public static void Main()
Triangle tr2 = new Triangle(3, 4, 5);
Circle circle = new Circle(2);