7.7.2 Спецiальний( ad-hoc) полiморфiзм: перевантаження операторiв
7 Класи
public Employee( string NameFirst, string NameLast, string Dept, string Sal, string Pos): base( NameFirst, NameLast)
{ // конструктор класу нащадка iнiцiалiзує // поля базового класу( NameFirst, NameLast) // за допомогою base
}
Department = dept; Salary = Sal; Position = Pos;
} public override void Display()
{ base. Display(); // викликаємо метод базового класу Console. WriteLine(" Department: " + Department);
}
Як ми бачимо, можна використовувати ключове словоbase не лише для конструктора. В нашому прикладi ми в похiдному класi викликаємо метод базового класу.
7.7.2 Спецiальний( ad-hoc) полiморфiзм: перевантаження операторiв
У C # iснує ряд операторiв для роботи iз вбудованими типами даних. Це оператори «+», «- », «!», «==», «!=» й iншi. Так, бiнарний оператор «+» виконує операцiю додавання над чисельними типами даних. Але ми цей оператор використовували над рядками для виконання операцiï конкатенацiï. Це вiдбувається завдяки тому, що оператор «+» перевантажений у класi String. Для перевантаження операторiв використовуються public static методи члени класiв iз ключовим словом operator. Ми будемо перевантажувати унарнi й бiнарнi оператори. Унарнi оператори – це оператори, якi мають один операнд, бiнарнi – два.
До унарних операторiв, якi можна перевантажувати вiдносяться: «+», «- », «!», « », «++», «–», « true », « false ».
До бiнарних операторiв, якi можна перевантажувати вiдносяться: «+», «- », «*», «/», «
Оператори «==», «!=», «<», «>», «<=», «>=» теж можно, але тiльки парами – якщо перевантажується «==» то необхiдно перевантажувати «!=» й навпаки.
142