Продемонстрировать принцип иерархии, наследования классов и инкапсуляции данных - C#

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

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

Продемонстрировать принцип иерархии, наследования классов и инкапсуляции данных.

Решение задачи: «Продемонстрировать принцип иерархии, наследования классов и инкапсуляции данных»

textual
Листинг программы
  1. using System;
  2. abstract class TwoDShape {
  3. double pri_width;
  4. double pri_height;
  5. // Конструктор, используемый по умолчанию,
  6. public TwoDShape() {
  7. Width = Height =0.0;
  8. name = "null";
  9. }
  10. // Параметризированный конструктор.
  11.  
  12. public TwoDShape(double w, double h, string n) {
  13. Width = w;
  14. Height = h;
  15. name = n;
  16. }
  17. // Сконструировать объект равной ширины и высоты,
  18. public TwoDShape(double x, string n) {
  19. Width = Height = x;
  20. name = n;
  21. }
  22. // Сконструировать копию объекта TwoDShape.
  23. public TwoDShape(TwoDShape ob) {
  24. Width = ob.Width;
  25. Height = ob.Height;
  26. name = ob.name;
  27. }
  28. // Свойства ширины и высоты объекта,
  29. public double Width {
  30. get { return pri_width; }
  31. set { pri_width = value < 0 ? -value : value; }
  32. }
  33. public double Height {
  34. get { return pri_height; }
  35. set { pri_height = value < 0 ? -value : value; }
  36. }
  37. public string name { get; set; }
  38. public void ShowDim() {
  39. Console.WriteLine("Ширина и высота равны " +
  40. Width + " и " + Height);
  41. }
  42. // Теперь метод Агеа() является абстрактным,
  43. public abstract double Area();
  44. // Класс для треугольников, производный от класса TwoDShape.
  45. class Triangle : TwoDShape {
  46. string Style;
  47. // Конструктор, используемый по умолчанию,
  48. public Triangle() {
  49. Style = "null";
  50. }
  51. // Конструктор для класса Triangle,
  52. public Triangle(string s, double w, double h) :
  53. base (w, h, "треугольник") {
  54. Style = s;
  55. }
  56.  
  57. // Сконструировать равнобедренный треугольник,
  58. public Triangle(double x) : base(x, "треугольник") {
  59. Style = "равнобедренный";
  60. }
  61. // Сконструировать копию объекта типа Triangle,
  62. public Triangle(Triangle ob) : base(ob) {
  63. Style = ob.Style;
  64. }
  65. // Переопределить метод Агеа() для класса Triangle,
  66. public override double Area() {
  67. return Width * Height / 2;
  68. }
  69. // Показать тип треугольника,
  70. public void ShowStyleO {
  71. Console.WriteLine("Треугольник " + Style);
  72. }
  73. V/ Класс для прямоугольников, производный от класса TwoDShape
  74. class Rectangle : TwoDShape {
  75. // Конструктор для класса Rectangle.
  76. public Rectangle(double w, double h) :
  77. base(w, h, "прямоугольник"){ }
  78. // Сконструировать квадрат,
  79. public Rectangle(double x) :
  80. base(x, "прямоугольник") { }
  81. // Сконструировать копию объекта типа Rectangle,
  82. public Rectangle(Rectangle ob) : base(ob) { }
  83. // Возвратить логическое значение true, если
  84. // прямоугольник окажется квадратом,
  85. public bool IsSquareO {
  86. if(Width == Height) return true;
  87. return false;
  88. }
  89. // Переопределить метод Агеа() для класса Rectangle,
  90. public override double Area() {
  91. return Width * Height;
  92. }
  93. }

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


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

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

12   голосов , оценка 4.333 из 5

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

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

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