Спадкування і похідні класи (c # vs java)

Функціональні можливості існуючого класу можна розширити шляхом створення нового класу, похідного від існуючого. Похідний клас успадковує всі властивості базового класу, і можна додавати або перевизначати методи і властивості в залежності від необхідності.

Як і мова Java, C # не підтримує множинне успадкування. Це означає, що класи не мають права стати спадкоємцями від декількох класів. Однак для цієї мети можна використовувати інтерфейси так, як це робиться в Java.

У наступному коді визначається клас з ім'ям CoOrds з двома закритими змінними членів x і y. представляючи положення точки. Ці змінні викликаються через властивості з ім'ям X і Y відповідно.

Конструктор похідного класу неявно викликає конструктор для базового класу або суперкласу, якщо використовувати термінологію мови Java. При спадкуванні все конструктори базового класу викликаються до конструкторів похідного класу для того, щоб класи були присутні в ієрархії класів.

Як в і мовою Java, для доступу до членів і методам похідного класу можна використовувати посилання на базовий клас, навіть якщо вона може містити допустиму посилання на об'єкт похідного типу.

Посилатися на похідний клас можна за допомогою неявної посилання на похідний тип.

При виконанні цього коду можна помітити, що конструктор похідного класу використовує тіло методу в базовому класі, дозволяючи форматувати член лічильника не дублюючи цей код. Нижче наведені вихідні дані.

Count in base class = 2

Count in derived class = 101

Абстрактний клас оголошує один або кілька методів або властивостей в якості абстрактних. Такі методи не мають реалізації в класі, оголошує їх, проте абстрактний клас може також містити неабстрактне методи, тобто методи для яких надається реалізація. Примірник абстрактного класу не може бути створений безпосередньо - тільки як похідний клас. Такі похідні класи повинні надавати реалізації для всіх абстрактних методів і властивостей за допомогою ключового слова override. якщо тільки сам похідний член не оголошений абстрактним.

У наступному прикладі оголошується абстрактний клас Employee. Також, можна створити похідний клас з ім'ям Manager. надає реалізацію абстрактного методу Show (). визначеного в класі Employee.