C#: наследование в действии
Как известно, наследование необходимо для реиспользования кода, что облегчает следование принципу Don’t Repeat Yourself (DRY). Если тезисно, то наследование можно описать следующим образом:
Теперь давайте создадим консольное приложение, используя язык программирования C#. Назовем это приложение InheritanceAndPolymorphism и добавим туда 2 класса: ClassA и ClassB:
Мы можем видеть, что класс А является пустым, а в класс B были добавлены 2 метода и переменная x, имеющая значение 100. В результате в главном методе Program.cs мы можем написать следующий код:
Конечно же, такой код приведет к ошибке:
Причина этой ошибки очевидна: в классе А отсутствует вызываемый нами метод. Но этот метод существует у класса B. Разве было бы не чудесно, если бы мы получили для класса B доступ ко всему программному коду из класса A? Вопрос риторический. Но тогда давайте поменяем описание первого класса:
После того, как программа выполнится, вывод будет следующим:
ClassB Display1
Теперь ClassA будет наследовать публичные методы из ClassB, а это то же самое, как будто бы мы скопировали весь код из класса B в класс A. Таким образом все, что объект класса B может делать, может делать и объект класса A. ClassA в данном случае дочерний, а ClassB — родительский.
Что важно запомнить: как ребенок похож на родителя, наследуя его черты, так и дочерний класс наследует параметры родительского класса.
По материалам статьи «Diving in OOP (Day 2): Polymorphism and Inheritance (Inheritance)»: - https://www.codeproject.com/Articles/772238/Diving-in-OOP-Day-Polymorphism-and-Inheritance.