Реализовать иерархию классов Фигура-Линия–Квадрат - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д