Как реализовать абстрактный класс? - C#
Формулировка задачи:
Реализовать иерархию классов: Фигура - Точка - Линия. Класс “Фигура” - абстрактный. В каждом производном классе присутствует - конструктор инициализации, методы ввода-вывода данных.
Вопрос 1: Как этот абстрактный класс реализовать? Я придумала только переопределить метод Run(). Что еще надо сделать? и как?
Вопрос 2: А я вообще правильно делаю?
Листинг программы
- namespace ConsoleApplication2
- {
- public abstract class Figyra // Создаем абстрактный класс
- {
- public Figyra()
- { }
- public abstract double Run();
- }
- public class Point
- {
- private double x;
- private double y;
- public Point()
- {
- x = 0;
- y = 0;
- }
- public Point(double x, double y)
- {
- this.x = x;
- this.y = y;
- }
- public double X
- { get { return x; } set { x = value; } }
- public double Y
- { get { return y; } set { y = value; } }
- }
- public class Line : Point
- {
- public Line(Point begin, Point end)
- {
- Begin = new Point(begin.X, begin.Y);
- End = new Point(end.X, end.Y);
- }
- public Point Begin { get; set; }
- public Point End { get; set; }
- public double Run()
- {
- return Math.Sqrt( Math.Pow((End.X - Begin.X),2) + Math.Pow((End.Y - Begin.Y),2));
- }
- }
- class Programm
- {
- static void Main(string[] args)
- {
- Point t1 = new Point(1,2);
- Point t2 = new Point(3, 4);
- Line m = new Line(t1,t2);
- Console.WriteLine("Длина линии: {0:0.00}", + m.Run());
- Console.ReadLine();
- }
- }
- }
Решение задачи: «Как реализовать абстрактный класс?»
textual
Листинг программы
- public class Point : Figyra
- ...
- // внутри класса Point
- public override double Run()
- {
- throw new Exception("Not use for Point");
- }
- ...
- // внутри класса Line
- public override double Run()
- {
- return Math.Sqrt(Math.Pow((End.X - Begin.X), 2) + Math.Pow((End.Y - Begin.Y), 2));
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д