Наследование C# и полиморфизм с примерами программ
Что такое наследование в C#?
Наследование является важной концепцией C#. Наследование — это концепция, в которой вы определяете родительские классы и дочерние классы. Дочерние классы наследуют методы и свойства родительского класса, но в то же время они также могут изменять поведение методов, если это необходимо. Дочерний класс также может определять собственные методы, если это необходимо.
В этом руководстве по C# вы узнаете-
- Что такое наследование в C#?
- Пример наследования C#
- Что такое полиморфизм в C#?
- Пример полиморфизма C#
Давайте лучше разберемся с наследованием C# на примере программы:
Пример наследования C#
Давайте теперь посмотрим, как мы можем включить концепцию наследования в наш код.
Шаг 1) Первый шаг — изменить код нашего учебного класса. На этом шаге мы добавляем приведенный ниже код в файл Tutorial.cs.
Обратите внимание, что теперь нам нужно добавить модификатор доступа «защищено» в поля TutorialID и TutorialName.
Помните, мы упоминали этот модификатор доступа в учебнике по модификаторам доступа. Ну, здесь вы можете увидеть цель этого. Только при наличии этого модификатора доступа (защищенного) дочерний класс сможет использовать поля родительского класса.
Шаг 2) Второй шаг — добавить наш новый дочерний класс. Имя этого класса будет «Guru99Tutorial». На этом этапе мы добавляем приведенный ниже код в файл Tutorial.cs. Код должен быть размещен после определения класса Tutorial.
Пояснение кода:-
- Первый шаг — создать дочерний класс Guru99Tutorial. Мы также должны упомянуть, что этот класс будет дочерним по отношению к классу Tutorial. Это делается с помощью ключевого слова ‘:’.
- Далее мы определяем метод RenameTutorial. Он будет использоваться для переименования поля TutorialName. Этот метод принимает строковую переменную, содержащую новое имя учебника.
- Затем мы присвоили параметр pNewName полю TutorialName.
Примечание :— Несмотря на то, что мы не определили поле TutorialName в классе «Guru99Tutorial», мы все еще можем получить доступ к этому полю. Это связано с тем, что «Guru99Tutorial» является дочерним классом класса Tutorial. А поскольку мы сделали поля класса Tutorial защищенными, этот класс может получить к ним доступ.
Шаг 3) Последний шаг — изменить наш основной файл Program.cs. В нашем консольном приложении мы собираемся создать объект класса Guru99Tutorial. С этим объектом мы собираемся вызвать метод RenameTutorial. Затем мы отобразим поле TutorialName с помощью метода GetTutorial.
01
Пояснение кода:-
- Первый шаг — создать объект для класса Guru99Tutorial. Это делается с помощью ключевого слова «новое». Обратите внимание, что на этот раз мы не создаем объект класса Tutorial.
- Мы используем метод RenameTutorial класса Guru99Tutorial, чтобы изменить поле TutorialName. Мы передаем строку «.Net by Guru99» в метод RenameTutorial.
- Затем мы вызываем метод GetTutorial. Обратите внимание, что хотя этот метод не определен в классе Guru99Tutorial, мы все равно можем получить к нему доступ. Затем выходные данные метода GetTutorial отображаются на консоли с помощью метода Console.WriteLine.
Если приведенный выше код введен правильно и программа выполнена успешно, отобразится следующий вывод.
Вывод:
Из вывода ясно видно, что поле TutorialName было переименовано в «.Net by Guru99». Это стало возможным благодаря методу RenameTutorial, вызываемому дочерним классом.
Что такое полиморфизм в C#?
Полиморфизм в C# — это концепция ООП, в которой одно имя может иметь множество форм. Например, у вас есть смартфон для связи. Выбранный вами способ связи может быть любым. Это может быть звонок, текстовое сообщение, графическое сообщение, почта и т. д. Итак, цель общая, то есть общение, но подход у них разный. Это называется полиморфизмом.
Вы лучше поймете полиморфизм C#, ознакомившись с приведенным ниже примером программы:
Пример полиморфизма C#
Давайте теперь посмотрим, как мы можем включить концепцию полиморфизма в наш код.
Шаг 1) Первый шаг — изменить код нашего учебного класса. На этом шаге мы добавляем приведенный ниже код в файл Tutorial.cs.
Пояснение кода:-
1 и 2) Первый шаг такой же, как и в наших предыдущих примерах. Мы сохраняем определение метода SetTutorial как есть.
3) Этот метод устанавливает TutorialID и TutorialName на основе параметров pID и pName.
4) Здесь мы вносим изменения в наш класс, добавляя новый метод с тем же именем, что и SetTutorial. Только на этот раз мы передаем только один параметр — pName. В этом методе мы просто устанавливаем в поле TutorialName значение pName.
Шаг 2) Последний шаг — изменить наш основной файл Program.cs. В нашем консольном приложении мы создадим объект класса Guru99Tutorial.
10пре>Пояснение кода:-
- На первом этапе мы используем метод SetTutorial с двумя параметрами. Где мы передаем этому методу и TutorialID, и TutorialName.
- На втором этапе мы вызываем метод SetTutorial только с одним параметром. Мы просто передаем TutorialName этому методу.
Если приведенный выше код введен правильно и программа запущена, будет отображаться следующий вывод. Если вы хотите также получить идентификатор учебника вместе с названием учебника, вам следует выполнить следующий шаг
- Создайте отдельный метод с именем public int GetTutorialID
- В этом методе напишите строку кода «return TutorialID». Это можно использовать для возврата TutorialID вызывающей программе.
Вывод:
Из вывода ясно видно, что оба метода были вызваны успешно. Из-за этого в консоль отправлялись строки «Первый учебник» и «Второй учебник».
Обзор
- Наследование — это когда дочерний класс наследует поля и методы родительского класса. Затем дочерний класс также может определять свои собственные методы.
- Полиморфизм в C# — это концепция ООП, в которой одно имя может иметь множество форм.
Язык C
- Выражения, операторы и блоки C# (с примерами)
- Класс и объект С#
- Абстрактный класс и метод С#
- Частичный класс C# и частичный метод
- Запечатанный класс и метод С#
- Функции C++ с примерами программ
- Разница между структурой и классом:объяснение на примере C++
- Разница между while и do-while:объяснение с примерами
- type() и isinstance() в Python с примерами
- С# — Структура программы