Виртуальные методы и их переопределение - проверка корректности реализации - 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"

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


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

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

8   голосов , оценка 4.25 из 5
Похожие ответы