C # Спадщина & Поліморфізм на прикладах

Зміст:

Anonim

У цьому підручнику ви дізнаєтесь-

  • Спадщина
  • Поліморфізм

Що таке успадкування в C #?

Спадщина - важливе поняття в C #. Спадщина - це концепція, в якій ви визначаєте батьківські класи та дочірні класи.

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

Ви отримаєте краще розуміння, якщо ми побачимо цю дію.

Давайте тепер подивимося, як ми можемо включити поняття успадкування в наш код.

Крок 1) Першим кроком є ​​зміна коду для нашого класу підручника. На цьому кроці ми додаємо код нижче до файлу Tutorial.cs.

Зверніть увагу, що тепер нам потрібно додати модифікатор доступу 'protected' як до поля TutorialID, так і до поля TutorialName.

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

Крок 2) Другим кроком є ​​додавання нашого нового дочірнього класу. Назва цього класу буде "Guru99Tutorial". На цьому кроці ми додаємо код нижче до файлу Tutorial.cs. Код слід розміщувати після визначення класу Підручника.

Пояснення коду: -

  1. Першим кроком є ​​створення дочірнього класу Guru99Tutorial. Ми також повинні згадати, що цей клас буде дочірнім класом підручника. Це робиться за допомогою ключового слова ':'.
  2. Далі ми визначаємо метод, який називається RenameTutorial. Він буде використовуватися для перейменування поля TutorialName. Цей метод приймає рядкову змінну, яка містить нову назву підручника.
  3. Потім ми призначили параметр pNewName полю TutorialName.

    Примітка : - Хоча ми не визначили поле TutorialName у класі "Guru99Tutorial", ми все одно можемо отримати доступ до цього поля. Це пов’язано з тим, що «Guru99Tutorial» є дочірнім класом класу Tutorial. І оскільки ми зробили поля класу Підручник захищеними, до них може отримати доступ цей клас.

Крок 3) Останнім кроком є ​​зміна нашого головного файлу Program.cs. У нашому консольному додатку ми збираємось створити об’єкт класу Guru99Tutorial. За допомогою цього об’єкта ми збираємось викликати метод RenameTutorial. Потім ми збираємося відобразити поле TutorialName за допомогою методу GetTutorial.

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Tutorial{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public String GetTutorial(){return TutorialName;}}public class Guru99Tutorial:Tutorial{public void RenameTutorial(String pNewName){TutorialName=pNewName;}static void Main(string[] args){Guru99Tutorial pTutor=new Guru99Tutorial();pTutor.RenameTutorial(".Net by Guru99");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}

Пояснення коду: -

  1. Першим кроком є ​​створення об’єкта для класу Guru99Tutorial. Це робиться за допомогою ключового слова 'new'. Зауважте, що цього разу ми не створюємо об’єкт класу Підручник.
  2. Для зміни поля TutorialName ми використовуємо метод RenameTutorial класу Guru99Tutorial. Ми передаємо рядок ".Net by Guru99" методу RenameTutorial.
  3. Потім ми викликаємо метод GetTutorial. Зауважте, що, хоча цей метод не визначений у класі Guru99Tutorial, ми все одно маємо доступ до цього методу. Потім результати методу GetTutorial відображаються на консолі через метод Console.WriteLine.

Якщо вищевказаний код введено правильно і програму успішно виконано, відобразиться наступний результат.

Вихід:

З вихідних даних ми чітко бачимо, що поле TutorialName було перейменовано на ".Net Guru99". Це стало можливим за допомогою методу RenameTutorial, викликаного дочірнім класом.

Що таке поліморфізм у C #?

Поліморфізм - це поняття ООП, де одне ім’я може мати багато форм.

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

Ви отримаєте краще розуміння, якщо ми побачимо цю дію.

Давайте тепер подивимося, як ми можемо включити поняття поліморфізму в наш код.

Крок 1) Першим кроком є ​​зміна коду для нашого класу підручника. На цьому кроці ми додаємо код нижче до файлу Tutorial.cs.

Пояснення коду: -

1 & 2) Перший крок такий же, як і в наших попередніх прикладах. Ми зберігаємо визначення методу SetTutorial таким, яким він є.

3) Цей метод встановлює TutorialID та TutorialName на основі параметрів pID та pName.

4) Тут ми вносимо зміни до нашого класу, де додаємо новий метод з такою ж назвою SetTutorial. Тільки цього разу ми передаємо лише один параметр, який є pName. У цьому методі ми просто встановлюємо для поля TutorialName значення pName.

Крок 2) Останнім кроком є ​​зміна нашого головного файлу Program.cs. У нашому консольному додатку ми збираємось створити об’єкт класу Guru99Tutorial.

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{class Tutorial{public int TutorialID;public string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public void SetTutorial(string pName){TutorialName=pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Tutorial pTutor=new Tutorial();pTutor.SetTutorial(1,"First Tutorial");Console.WriteLine(pTutor.GetTutorial());pTutor.SetTutorial("Second Tutorial");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}

Пояснення коду: -

  1. На першому кроці ми використовуємо метод SetTutorial з 2 параметрами. Де ми передаємо і TutorialID, і TutorialName до цього методу.
  2. На другому кроці ми зараз викликаємо метод SetTutorial лише з одним параметром. Ми просто передаємо TutorialName цьому методу.

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

  1. Створіть окремий метод, який називається public int GetTutorialID
  2. У цьому методі напишіть рядок коду "return TutorialID". Це може бути використано для повернення TutorialID до програми, що викликає.

Вихід:

З вихідних даних ми чітко бачимо, що обидва методи були викликані успішно. Через це на консоль були надіслані рядки "Перший навчальний посібник" та "Другий навчальний посібник".

Резюме

  • Спадщина - це те, де дочірній клас успадковує поля та методи батьківського класу. Потім дочірній клас може також визначати власні методи.
  • Поліморфізм - це поняття ООП, де одне ім’я може мати багато форм.