Как реализовать абстрактный класс? - C#

Узнай цену своей работы

Формулировка задачи:

Реализовать иерархию классов: Фигура - Точка - Линия. Класс “Фигура” - абстрактный. В каждом производном классе присутствует - конструктор инициализации, методы ввода-вывода данных. Вопрос 1: Как этот абстрактный класс реализовать? Я придумала только переопределить метод Run(). Что еще надо сделать? и как? Вопрос 2: А я вообще правильно делаю?
Листинг программы
  1. namespace ConsoleApplication2
  2. {
  3. public abstract class Figyra // Создаем абстрактный класс
  4. {
  5. public Figyra()
  6. { }
  7. public abstract double Run();
  8. }
  9. public class Point
  10. {
  11. private double x;
  12. private double y;
  13. public Point()
  14. {
  15. x = 0;
  16. y = 0;
  17. }
  18. public Point(double x, double y)
  19. {
  20. this.x = x;
  21. this.y = y;
  22. }
  23. public double X
  24. { get { return x; } set { x = value; } }
  25. public double Y
  26. { get { return y; } set { y = value; } }
  27. }
  28. public class Line : Point
  29. {
  30. public Line(Point begin, Point end)
  31. {
  32. Begin = new Point(begin.X, begin.Y);
  33. End = new Point(end.X, end.Y);
  34. }
  35. public Point Begin { get; set; }
  36. public Point End { get; set; }
  37. public double Run()
  38. {
  39. return Math.Sqrt( Math.Pow((End.X - Begin.X),2) + Math.Pow((End.Y - Begin.Y),2));
  40. }
  41. }
  42. class Programm
  43. {
  44. static void Main(string[] args)
  45. {
  46. Point t1 = new Point(1,2);
  47. Point t2 = new Point(3, 4);
  48. Line m = new Line(t1,t2);
  49. Console.WriteLine("Длина линии: {0:0.00}", + m.Run());
  50. Console.ReadLine();
  51. }
  52. }
  53. }

Решение задачи: «Как реализовать абстрактный класс?»

textual
Листинг программы
  1. public class Point : Figyra
  2. ...
  3. // внутри класса Point
  4. public override double Run()
  5. {
  6.     throw new Exception("Not use for Point");
  7. }
  8. ...
  9. // внутри класса Line
  10. public override double Run()
  11. {
  12.     return Math.Sqrt(Math.Pow((End.X - Begin.X), 2) + Math.Pow((End.Y - Begin.Y), 2));
  13. }

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


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

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

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы