Виртуальные методы и их переопределение - проверка корректности реализации - C#
Формулировка задачи:
Пожалуйста , кто шарит , скажите , я правильно сделал или нет ?
Задание
1.
В базовый класс добавить виртуальные методы;2.
В классах потомках переопределить виртуальные методы3.
Продемонстрировать работу виртуальных методов.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication19
- {
- class Person
- {
- public string Name;
- public int Age;
- public Person(string name, int age)
- {
- Name = name;
- Age = age;
- }
- public virtual void ShowInfo() //объявление виртуального метода
- {
- Console.WriteLine("Имя: " + Name + "\n" + "Возраст: " + Age );
- }
- }
- class Student : Person
- {
- public string HighSchoolName;
- public bool Status;
- // Передача параметров в базовый конструктор
- public Student(string name, int age, string hsName,bool status)
- : base(name, age)
- {
- HighSchoolName = hsName;
- Status = status;
- }
- public override void ShowInfo() // переопределение метода
- {
- // Обращение к методу базового класса, используя ключевое слово base
- Console.WriteLine("|||Исполнитель заказа:|||");
- base.ShowInfo();
- string temp;
- Console.Write("Название ВУЗа: " + HighSchoolName + "\n" + "Бюджет/Контракт: " + (temp = Status == true ? "1\n" : "2\n"));
- }
- }
- class Customer : Person
- {
- public int Price;
- public Customer(string name, int age, int price)
- : base(name, age)
- {
- Price = price;
- }
- public override void ShowInfo() // переопределение метода
- {
- // Обращение к методу базового класса, используя ключевое слово base
- Console.WriteLine("\n|||Заказчик:|||");
- base.ShowInfo();
- Console.WriteLine("Цена заказа(грн): " + Price);
- }
- }
- class mainlaba1
- {
- public static void Main()
- {
- List<Person> persons = new List<Person>();
- persons.Add(new Student("Валентин",17,"КрНУ",true));
- persons.Add(new Customer("Евгений",20,230));
- foreach (Person p in persons)
- p.ShowInfo();
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Виртуальные методы и их переопределение - проверка корректности реализации»
textual
Листинг программы
- Status ? "1\n" : "2\n"
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д