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

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

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

Пожалуйста , кто шарит , скажите , я правильно сделал или нет ?

Задание

1.

В базовый класс добавить виртуальные методы;

2.

В классах потомках переопределить виртуальные методы

3.

Продемонстрировать работу виртуальных методов.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication19
  7. {
  8. class Person
  9. {
  10. public string Name;
  11. public int Age;
  12. public Person(string name, int age)
  13. {
  14. Name = name;
  15. Age = age;
  16. }
  17. public virtual void ShowInfo() //объявление виртуального метода
  18. {
  19. Console.WriteLine("Имя: " + Name + "\n" + "Возраст: " + Age );
  20. }
  21. }
  22. class Student : Person
  23. {
  24. public string HighSchoolName;
  25. public bool Status;
  26. // Передача параметров в базовый конструктор
  27. public Student(string name, int age, string hsName,bool status)
  28. : base(name, age)
  29. {
  30. HighSchoolName = hsName;
  31. Status = status;
  32. }
  33. public override void ShowInfo() // переопределение метода
  34. {
  35. // Обращение к методу базового класса, используя ключевое слово base
  36. Console.WriteLine("|||Исполнитель заказа:|||");
  37. base.ShowInfo();
  38. string temp;
  39. Console.Write("Название ВУЗа: " + HighSchoolName + "\n" + "Бюджет/Контракт: " + (temp = Status == true ? "1\n" : "2\n"));
  40. }
  41. }
  42. class Customer : Person
  43. {
  44. public int Price;
  45. public Customer(string name, int age, int price)
  46. : base(name, age)
  47. {
  48. Price = price;
  49. }
  50. public override void ShowInfo() // переопределение метода
  51. {
  52. // Обращение к методу базового класса, используя ключевое слово base
  53. Console.WriteLine("\n|||Заказчик:|||");
  54. base.ShowInfo();
  55. Console.WriteLine("Цена заказа(грн): " + Price);
  56. }
  57. }
  58. class mainlaba1
  59. {
  60. public static void Main()
  61. {
  62. List<Person> persons = new List<Person>();
  63. persons.Add(new Student("Валентин",17,"КрНУ",true));
  64. persons.Add(new Customer("Евгений",20,230));
  65. foreach (Person p in persons)
  66. p.ShowInfo();
  67. Console.ReadKey();
  68. }
  69. }
  70. }

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

textual
Листинг программы
  1. Status ? "1\n" : "2\n"

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


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

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

8   голосов , оценка 4.25 из 5

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

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

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