HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: c#, наследование, inheritance</p>
1 <p>Теги: c#, наследование, inheritance</p>
2 <p>Как известно, наследование необходимо для реиспользования кода, что облегчает следование принципу<strong>Don’t Repeat Yourself</strong>(DRY). Если тезисно, то наследование можно описать следующим образом: - это механизм создания нового класса на основании уже существующего; - старый класс является предком либо родительским классом (super class); - новый класс является наследником или дочерним классом (sub class); - дочерний класс включает в себя методы и переменные родительского класса.</p>
2 <p>Как известно, наследование необходимо для реиспользования кода, что облегчает следование принципу<strong>Don’t Repeat Yourself</strong>(DRY). Если тезисно, то наследование можно описать следующим образом: - это механизм создания нового класса на основании уже существующего; - старый класс является предком либо родительским классом (super class); - новый класс является наследником или дочерним классом (sub class); - дочерний класс включает в себя методы и переменные родительского класса.</p>
3 <p>Теперь давайте создадим консольное приложение, используя язык программирования C#. Назовем это приложение<strong>InheritanceAndPolymorphism</strong>и добавим туда 2 класса: ClassA и ClassB:</p>
3 <p>Теперь давайте создадим консольное приложение, используя язык программирования C#. Назовем это приложение<strong>InheritanceAndPolymorphism</strong>и добавим туда 2 класса: ClassA и ClassB:</p>
4 <p>Мы можем видеть, что класс А является пустым, а в класс B были добавлены 2 метода и переменная<em>x</em>, имеющая значение 100. В результате в главном методе Program.cs мы можем написать следующий код:</p>
4 <p>Мы можем видеть, что класс А является пустым, а в класс B были добавлены 2 метода и переменная<em>x</em>, имеющая значение 100. В результате в главном методе Program.cs мы можем написать следующий код:</p>
5 <p>Конечно же, такой код приведет к ошибке:</p>
5 <p>Конечно же, такой код приведет к ошибке:</p>
6 <p>Причина этой ошибки очевидна: в классе А отсутствует вызываемый нами метод. Но этот метод существует у класса B. Разве было бы не чудесно, если бы мы получили для класса B доступ ко всему программному коду из класса A? Вопрос риторический. Но тогда давайте поменяем описание первого класса:</p>
6 <p>Причина этой ошибки очевидна: в классе А отсутствует вызываемый нами метод. Но этот метод существует у класса B. Разве было бы не чудесно, если бы мы получили для класса B доступ ко всему программному коду из класса A? Вопрос риторический. Но тогда давайте поменяем описание первого класса:</p>
7 <p>После того, как программа выполнится, вывод будет следующим:</p>
7 <p>После того, как программа выполнится, вывод будет следующим:</p>
8 <p>Теперь ClassA будет наследовать публичные методы из ClassB, а это то же самое, как будто бы мы скопировали весь код из класса B в класс A. Таким образом все, что объект класса B может делать, может делать и объект класса A. ClassA в данном случае дочерний, а ClassB - родительский.</p>
8 <p>Теперь ClassA будет наследовать публичные методы из ClassB, а это то же самое, как будто бы мы скопировали весь код из класса B в класс A. Таким образом все, что объект класса B может делать, может делать и объект класса A. ClassA в данном случае дочерний, а ClassB - родительский.</p>
9 <p><strong>Что важно запомнить</strong>: как ребенок похож на родителя, наследуя его черты, так и дочерний класс наследует параметры родительского класса.</p>
9 <p><strong>Что важно запомнить</strong>: как ребенок похож на родителя, наследуя его черты, так и дочерний класс наследует параметры родительского класса.</p>
10 <p>По материалам статьи "Diving in OOP (Day 2): Polymorphism and Inheritance (Inheritance)": -<em>https://www.codeproject.com/Articles/772238/Diving-in-OOP-Day-Polymorphism-and-Inheritance</em>.</p>
10 <p>По материалам статьи "Diving in OOP (Day 2): Polymorphism and Inheritance (Inheritance)": -<em>https://www.codeproject.com/Articles/772238/Diving-in-OOP-Day-Polymorphism-and-Inheritance</em>.</p>
11  
11