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