Как реализовать абстрактный класс? - 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));
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы