Ц # Наслеђивање & амп; Полиморфизам са примерима

Преглед садржаја:

Anonim

У овом упутству ћете научити-

  • Наслеђивање
  • Полиморфизам

Шта је наслеђивање у Ц #?

Наслеђивање је важан појам у Ц #. Наслеђивање је концепт у којем дефинишете класе родитеља и класе детета.

Подређене класе наслеђују методе и својства родитељске класе, али у исто време могу такође модификовати понашање метода ако је потребно. Подређена класа такође може да дефинише сопствене методе ако је потребно.

Боље ћете разумети ако видимо ову акцију.

Погледајмо сада како можемо укључити концепт наслеђивања у свој код.

Корак 1) Први корак је промена кода за нашу наставну класу. У овом кораку додајемо доњи код у датотеку Туториал.цс.

Имајте на уму да сада морамо да додамо модификатор приступа „протецтед“ и у поље ТуториалИД и ТуториалНаме.

Сетите се да смо поменули овај модификатор приступа у водичу за Модификатор приступа. Па, овде можете видети сврху овог. Тек када имате овај модификатор приступа (заштићен), подређена класа ће моћи да користи поља родитељске класе.

Корак 2) Други корак је додавање наше нове класе детета. Назив ове класе биће „Гуру99Туториал“. У овом кораку додајемо доњи код у датотеку Туториал.цс. Код треба поставити након дефиниције класе Туториал.

Објашњење кода: -

  1. Први корак је стварање дечје класе Гуру99Туториал. Такође морамо да напоменемо да ће овај час бити подређен одељењу класе Туториал. То се ради помоћу кључне речи ':'.
  2. Даље, дефинишемо методу која се зове РенамеТуториал. Користиће се за преименовање поља ТуториалНаме. Ова метода прихвата променљиву низа која садржи ново име упутства.
  3. Затим смо пољу ТуториалНаме доделили параметар пНевНаме.

    Напомена : - Иако нисмо дефинисали поље ТуториалНаме у класи „Гуру99Туториал“, и даље можемо приступити овом пољу. То је због чињенице да је „Гуру99Туториал“ подређена класа Туториал класе. А пошто смо поља класе Водич учинили заштићенима, ова класа им може приступити.

Корак 3) Последњи корак је измена наше главне датотеке Програм.цс. У нашој конзоли, направићемо објекат класе Гуру99Туториал. Са овим објектом позваћемо РенамеТуториал методу. Затим ћемо приказати поље ТуториалНаме уз помоћ методе ГетТуториал.

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. Први корак је стварање објекта за класу Гуру99Туториал. То се постиже помоћу кључне речи 'нев'. Имајте на уму да овог пута не креирамо објекат класе Туториал.
  2. За промену поља ТуториалНаме користимо методу РенамеТуториал класе Гуру99Туториал. Низ „.Нет би Гуру99“ прослеђујемо РенамеТуториал методи.
  3. Затим позивамо методу ГетТуториал. Имајте на уму да, иако овај метод није дефинисан у класи Гуру99Туториал, и даље можемо приступити овом методу. Излаз методе ГетТуториал затим се приказује на конзоли путем методе Цонсоле.ВритеЛине.

Ако је горњи код правилно унесен и програм се успешно изврши, приказаће се следећи излаз.

Излаз:

Из резултата можемо јасно видети да је поље ТуториалНаме преименовано у ".Нет би Гуру99". Ово је омогућено помоћу методе РенамеТуториал коју је позвала класа цхилд.

Шта је полиморфизам у Ц #?

Полиморфизам је концепт ООП-а где једно име може имати више облика.

На пример, имате паметни телефон за комуникацију. Режим комуникације који одаберете може бити било који. То може бити позив, текстуална порука, сликовна порука, пошта итд. Дакле, заједнички циљ је комуникација, али њихов приступ је другачији. Ово се назива полиморфизам.

Боље ћете разумети ако видимо ову акцију.

Погледајмо сада, како можемо да уградимо концепт полиморфизма у наш код.

Корак 1) Први корак је промена кода за нашу наставну класу. У овом кораку додајемо доњи код у датотеку Туториал.цс.

Објашњење кода: -

1 и 2) Први корак је исти као у нашим ранијим примерима. Задржавамо дефиницију методе СетТуториал каква јесте.

3) Ова метода поставља ТуториалИД и ТуториалНаме на основу параметара пИД и пНаме.

4) Овде вршимо промену класе у коју додајемо нову методу са истим именом СетТуториал. Само што овог пута преносимо само један параметар који је пНаме. Овом методом само постављамо поље ТуториалНаме на пНаме.

Корак 2) Последњи корак је измена наше главне датотеке Програм.цс. У нашој конзоли, направићемо објекат класе Гуру99Туториал.

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. У првом кораку користимо методу СетТуториал са 2 параметра. Тамо где прослеђујемо и ТуториалИД и ТуториалНаме овој методи.
  2. У другом кораку сада позивамо СетТуториал методу са само једним параметром. Управо преносимо ТуториалНаме на ову методу.

Ако је горњи код исправно унесен и програм је покренут, приказаће се следећи излаз. Ако сте у случају да сте желели да узмете и ИД водича заједно са називом упутства, следите следећи корак

  1. Направите засебну методу која се зове публиц инт ГетТуториалИД
  2. У тој методи напишите линију кода „ретурн ТуториалИД“. Ово се може користити за враћање ТуториалИД-а позивајућем програму.

Излаз:

Из резултата можемо јасно видети да су обе методе успешно позване. Због тога су на конзолу послати низови „Први водич“ и „Други водич“.

Резиме

  • Наслеђивање је место где подређена класа наслеђује поља и методе родитељске класе. Дечија класа тада такође може да дефинише сопствене методе.
  • Полиморфизам је концепт ООП-а где једно име може имати више облика.