Основы объектно-ориентированного программирования на языке 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