وراث یک مفهوم مهم در C # است. میراث یک مفهوم است که در آن تعریف کلاس های والدین و کلاس های کودک را تعریف می کنید.

کلاس های کودکی روش ها و خواص کلاس پدر و مادر را به ارث می برند، اما در عین حال می توانند رفتار روش ها را در صورت لزوم تغییر دهند. کلاس کودک همچنین می تواند روش های خود را در صورت لزوم تعریف کند.

اگر ما این اقدام را ببینیم، درک بهتری خواهید داشت.

حالا ببینید که چگونه می توانیم مفهوم ارث در کد ما را تعریف کنیم.

مرحله 1) اولین گام این است که کد را برای کلاس Tutorial خود تغییر دهیم. در این مرحله، کد زیر را به فایل Tutorial.cs اضافه می کنیم.

C# Class and Object

توجه داشته باشید که اکنون ما باید یک اصلاح کننده دسترسی «محافظت شده» را به هر دو Field TutorialID و TutorialName اضافه کنیم.

به یاد داشته باشید که ما این اصلاح کننده دسترسی را در آموزش Modifier Access نام بردیم. خوب در اینجا می توانید هدف از این را ببینید. فقط زمانی که شما این اصلاح کننده دسترسی (محافظت شده) داشته باشید، کلاس کودک قادر به استفاده از زمینه های کلاس پدر و مادر است.

گام دوم: گام دوم این است که کلاس جدید فرزندمان را اضافه کنیم. نام این کلاس “Guru99Tutorial” خواهد بود. در این مرحله، کد زیر را به فایل Tutorial.cs اضافه می کنیم. کد باید بعد از تعریف کلاس Tutorial قرار گیرد.

C# Class and Object

توضیح کد: –

  1. اولین گام این است که کلاس کودک Guru99Tutorial را ایجاد کنید. ما همچنین باید اشاره کنیم که این کلاس در کلاس کلاس Tutorial قرار می گیرد. این کار با کلید واژه “:” انجام می شود.
  2. بعد، ما یک روش به نام RenameTutorial تعریف می کنیم. این برای تغییر نام فیلد TutorialName استفاده می شود. این روش یک متغیر رشته ای را که شامل نام جدید آموزش است را می پذیرد.
  3. سپس پارامتر pNewName را به فیلد TutorialName اختصاص دادیم.توجه : – اگرچه فیلد TutorialName را در کلاس “Guru99Tutorial” تعریف نمیکنیم، ما هنوز قادر به دسترسی به این فیلد هستیم. این به خاطر این واقعیت است که “Guru99Tutorial” یک کلاس کودک کلاس Tutorial است. و چون زمینه های کلاس Tutorial را به عنوان محافظ ساخته ایم، می توان از طریق این کلاس دسترسی پیدا کرد.

مرحله 3) آخرین قدم تغییر پرونده اصلی برنامه Program.cs است. در برنامه کنسول ما، ما می خواهیم یک شی از کلاس Guru99Tutorial ایجاد کنیم. با این هدف، ما با روش renameTutorial تماس خواهیم گرفت. سپس با استفاده از روش GetTutorial، Field Field TutorialName را نمایش می دهیم.

C# Class and Object

  با استفاده از سیستم؛
 با استفاده از System.Collections.Generic؛
 با استفاده از System.Linq؛
 با استفاده از System.Text؛
 با استفاده از System.Threading.Tasks؛
 نام فضایی DemoApplication
 {
  آموزش کلاس
  {
   محافظت int TutorialID؛ 
   محافظ رشته TutorialName؛
  
   public void SetTutorial (int pID، string pName) 
   {
    TutorialID = PID؛
    TutorialName = pName؛
   }
  
   String عمومی GetTutorial ()
   {
    بازگشت TutorialName؛
   }
  }
   کلاس Guru99Tutorial: آموزش
   {
    public void RenameTutorial (String pNewName)
    {
     TutorialName = pNewName؛
    }
  
   خالی استاتیک Main (string [] args) 
   {
    Guru99Tutorial pTutor = جدید Guru99Tutorial ()؛
   
    pTutor.RenameTutorial (".Net توسط Guru99")؛
    
    Console.WriteLine (pTutor.GetTutorial ())؛
    
    Console.ReadKey ()؛ 
   }
  }
 }

توضیح کد: –

  1. اولین گام این است که یک شی برای کلاس Guru99Tutorial ایجاد کنید. این کار از طریق کلید واژه جدید انجام می شود. توجه داشته باشید که این بار ما یک شی از کلاس Tutorial ایجاد نمی کنیم.
  2. ما از روش RenameTutorial از کلاس Guru99Tutorial برای تغییر فیلد TutorialName استفاده می کنیم. رشته “.Net توسط Guru99” را به روش RenameTutorial انتقال می دهیم.
  3. سپس روش GetTutorial را فراخوانی می کنیم. توجه داشته باشید که حتی اگر این روش در کلاس Guru99Tutorial تعریف نشده باشد، ما هنوز قادر به دسترسی به این روش هستیم. خروجی روش GetTutorial سپس از طریق روش Console.WriteLine به کنسول نمایش داده می شود.

اگر کد بالا به درستی وارد شده و برنامه با موفقیت اجرا شود، خروجی زیر نمایش داده می شود.

خروجی:

C# Class and Object

از خروجی، می توانیم به وضوح ببینیم که فیلد TutorialName به “.Net توسط Guru99” تغییر نام داده شد. این از روش RenameTutorial که توسط کلاس کودک نامیده می شود امکان پذیر است.

پلی مورفیسم در C # چیست؟

Polymorphism یک مفهوم OOP است که در آن یک نام می تواند اشکال بسیاری داشته باشد.

به عنوان مثال، شما باید یک گوشی هوشمند برای برقراری ارتباط داشته باشید. حالت ارتباطی که انتخاب می کنید می تواند هر چیزی باشد. این می تواند یک تماس، یک پیام متنی، یک پیام تصویری، پست الکترونیکی و غیره باشد. بنابراین هدف معمولی ارتباط است، اما رویکرد آنها متفاوت است. این پلیمورفیسم نامیده می شود.

اگر ما این اقدام را ببینیم، درک بهتری خواهید داشت.

حالا ببینیم چگونه می توانیم مفهوم Polymorphism را در کد ما ترکیب کنیم.

مرحله 1) اولین گام این است که کد را برای کلاس Tutorial خود تغییر دهیم. در این مرحله، کد زیر را به فایل Tutorial.cs اضافه می کنیم.

C# Class and Object

توضیح کد: –

1 و 2) گام اول همانند نمونه های قبلی ما است. ما در حال تعریف روش SetTutorial هستیم.

3) این روش، TutorialID و TutorialName را براساس پارامترهای pID و pName تنظیم می کند.

4) این جایی است که ما به کلاس ما تغییر می دهیم در حالی که ما یک روش جدید با همان نام SetTutorial اضافه می کنیم. فقط این بار ما تنها عبور یک پارامتر که pName است. در این روش ما فقط فیلد TutorialName را به pName تنظیم می کنیم.

مرحله 2) آخرین مرحله تغییر پرونده اصلی program.cs است. در برنامه کنسول ما، ما می خواهیم یک شی از کلاس Guru99Tutorial ایجاد کنیم.

C# Class and Object

  با استفاده از سیستم؛
 با استفاده از System.Collections.Generic؛
 با استفاده از System.Linq؛
 با استفاده از System.Text؛
 با استفاده از System.Threading.Tasks؛
 نام فضایی DemoApplication
 {
  آموزش کلاس
  {
   عمومی int TutorialID؛ 
   رشته عمومی TutorialName؛
  
   public void SetTutorial (int pID، string pName) 
   {
    TutorialID = PID؛
    TutorialName = pName؛
   }
   عمومی void SetTutorial (رشته pName) 
   {
    TutorialName = pName؛
   }
   String عمومی GetTutorial ()
   {
    بازگشت TutorialName؛
   }
  
   خالی استاتیک Main (string [] args) 
   {
    آموزش pTutor = جدید Tutorial ()؛
   
    pTutor.SetTutorial (1، "Tutorial اول")؛
    Console.WriteLine (pTutor.GetTutorial ())؛
   
    pTutor.SetTutorial ("آموزش دوم")؛
    Console.WriteLine (pTutor.GetTutorial ())؛
    
    Console.ReadKey ()؛ 
   }
  }
 }

توضیح کد: –

  1. در مرحله اول، ما از روش SetTutorial با 2 پارامتر استفاده می کنیم. کجا ما هر دو TutorialID و TutorialName را به این روش منتقل می کنیم.
  2. در مرحله دوم، ما اکنون تنها با یک پارامتر SetTutorial را فراخوانی می کنیم. ما فقط به این روش متد TutorialName می دهیم.

اگر کد بالا به درستی وارد شده و برنامه اجرا شود، خروجی زیر نمایش داده می شود. اگر در مورد شما همچنین می خواهید ID Tutorial را با نام Tutorial نامگذاری کنید، باید از مرحله زیر پیروی کنید

  1. یک روش جداگانه به نام public int GetTutorialID ایجاد کنید
  2. در این روش خط کد «return TutorialID» را بنویسید. این را می توان برای بازگرداندن TutorialID به برنامه فراخوانی استفاده کرد.

خروجی:

C# Class and Object

از خروجی، می توانیم به وضوح ببینیم که هر دو روش با موفقیت نامیده می شوند. به این ترتیب، رشته “Tutorial اول” و “Second Tutorial” به کنسول ارسال شد.

خلاصه

  • وراثت این است که یک کلاس کودک به ارث رشته ها و روش های کلاس والدین می پردازد. کلاس کودک نیز می تواند روش های خود را تعریف کند.
  • Polymorphism یک مفهوم OOP است که در آن یک نام می تواند اشکال بسیاری داشته باشد.