Основы объектно-ориентированного программирования на языке C# book | Page 141

7.7 Полiморфiзм му прикладi клас Employee має весь функцiонал класу Person . Але нехай нам необхiдно для спiвробiтника друкувати не прiзвище, а на- зву вiддiлу. Таке припустимо, але необхiдно дещо дописати в описi. Для цього в класi Person указати, що цей метод буде переввантажу- ватися у нащадку. Це робиться за допомогою модифiкатора virtual . В похiдному класi вiдповiдний метод, позначається модифiкатором override . class Person { ... public virtual void Display() { Console.WriteLine(FirstN + " " + LastN); } } class Employee : Person { ... public override void Display() { Console.WriteLine(FirstN + " " + LastN + "department" + department ); } } Залишилось питання, а що робити з полями базового класу, що спадкуються, у класi нащадку? Для цих полiв в конструкторi класу нащадка достатньо указати на конструктор базового класу за допо- могою ключового слова base . class Person { public string FirstName { get; set; } public string LastName {get; set; } public Person(string NameLast, string NameFirst) { // конструктор базового класу FirstName = NameFirst; LastName = NameLast; } public virtual void Display() { Console.WriteLine(FirstName + " " + LastName); } } class Employee : Person { public string Department { get; set; } public string Salary { get; set; } public string Position { get; set; } 141