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