Реализовать иерархию классов Фигура-Линия–Квадрат - C#
Формулировка задачи:
Задание: Реализовать иерархию классов Фигура-Линия–Квадрат (данные-координаты). Класс “Фигура” - абстрактный. В каждом производном классе присутствует - конструктор инициализации, методы ввода-вывода данных, метод вычисления площади (если это возможно) и объема (если это возможно) фигуры.
Вопрос - почему я не получаю результат? Как исправить?
namespace lab7
{
class Program
{
public abstract class Figyra // Создаем абстрактный класс
{
public int X1, Y1, X2, Y2;
public Figyra()
{ }
public Figyra(int x1, int y1, int x2, int y2)
{
this.X1 = x1;
this.Y1 = y1;
this.X2 = x2;
this.Y2 = y2;
}
public abstract string vivod(); //абстрактный формат строки для вывода результата который будет переопределен в других классах
public abstract void raschet(); //абстрактный метод расчета по формуле, который будет переопределен в других классах
}
public class Line : Figyra
{
public Line(int x1, int y1, int x2, int y2) : base(x1, y1, x2, y2)
{ }
public override string vivod() // Переопределяем метод vivod()
{
return (string.Format("У линии нет площади."));
}
public override void raschet() // Переопределяем метод raschet()
{
int d = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1); //расчитываем длинну стороны
}
}
public class Kvadrat : Figyra
{
public Kvadrat(int x1, int y1, int x2, int y2) : base (x1,y1,x2,y2)
{ }
public override void raschet() // Переопределяем метод raschet()
{
int d = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1);
int S = d * d;
}
public override string vivod() // Переопределяем метод vivod()
{
return (string.Format("Площадь квадрата равна: "));
}
}
static void Main(string[] args)
{
Line us1 = new Line(1, 2, 3, 4);
us1.raschet();
Console.WriteLine(us1.vivod());
Kvadrat us2 = new Kvadrat(1, 2, 3, 4);
us2.raschet();
Console.WriteLine(us2.vivod());
Console.ReadLine();
}
}
}Решение задачи: «Реализовать иерархию классов Фигура-Линия–Квадрат»
textual
Листинг программы
namespace lab7
{
class Program
{
public abstract class Figyra // Создаем абстрактный класс
{
public int X1, Y1, X2, Y2;
public Figyra()
{ }
public Figyra(int x1, int y1, int x2, int y2)
{
this.X1 = x1;
this.Y1 = y1;
this.X2 = x2;
this.Y2 = y2;
}
public abstract string vivod(); //абстрактный формат строки для вывода результата который будет переопределен в других классах
public abstract int raschet(); //абстрактный метод расчета по формуле, который будет переопределен в других классах
}
public class Line : Figyra
{
public Line(int x1, int y1, int x2, int y2) : base(x1, y1, x2, y2)
{ }
public override string vivod() // Переопределяем метод vivod()
{
return (string.Format("Длина стороны равна: "));
}
public override int raschet() // Переопределяем метод raschet()
{
return (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1); //расчитываем длинну стороны
}
}
public class Kvadrat : Figyra
{
public Kvadrat(int x1, int y1, int x2, int y2) : base (x1,y1,x2,y2)
{ }
public override int raschet() // Переопределяем метод raschet()
{
int d = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1);
return d * d;
}
public override string vivod() // Переопределяем метод vivod()
{
return (string.Format("Площадь квадрата равна: "));
}
}
static void Main(string[] args)
{
Line us1 = new Line(1, 2, 3, 4);
Console.WriteLine(us1.vivod() + us1.raschet() );
Kvadrat us2 = new Kvadrat(1, 2, 3, 4);
Console.WriteLine(us2.vivod() + us2.raschet() );
Console.ReadLine();
}
}
}