مثالوں کے ساتھ C# وراثت اور پولیمورفزم۔

اس سبق میں ، آپ سیکھیں گے-

C#میں وراثت کیا ہے؟

وراثت C#میں ایک اہم تصور ہے۔ وراثت ایک تصور ہے جس میں آپ والدین کی کلاسوں اور بچوں کی کلاسوں کی وضاحت کرتے ہیں۔

چائلڈ کلاسز والدین کے طبقے کے طریقوں اور خصوصیات کا وارث ہوتی ہیں ، لیکن ایک ہی وقت میں ، اگر ضرورت ہو تو وہ طریقوں کے رویے میں بھی ترمیم کر سکتی ہیں۔ اگر ضرورت ہو تو چائلڈ کلاس اپنے طریقے بھی بیان کر سکتی ہے۔

اگر ہم یہ عمل دیکھیں گے تو آپ کو بہتر سمجھ آئے گی۔

آئیے اب دیکھتے ہیں کہ ہم وراثت کے تصور کو اپنے کوڈ میں کیسے شامل کر سکتے ہیں۔

مرحلہ نمبر 1) پہلا قدم ہماری ٹیوٹوریل کلاس کا کوڈ تبدیل کرنا ہے۔ اس مرحلے میں ، ہم مندرجہ ذیل کوڈ کو Tutorial.cs فائل میں شامل کرتے ہیں۔

نوٹ کریں کہ ہمیں اب ٹیوٹوریل آئی ڈی اور ٹیوٹوریل نام دونوں فیلڈ میں 'محفوظ' کے ایکسیس موڈیفائر کو شامل کرنے کی ضرورت ہے۔

یاد رکھیں کہ ہم نے ایکسیس موڈیفائر ٹیوٹوریل میں اس ایکسیس موڈیفائر کا ذکر کیا تھا۔ ٹھیک ہے یہاں آپ اسے رکھنے کا مقصد دیکھ سکتے ہیں۔ صرف اس وقت جب آپ کے پاس یہ ایکسیس موڈیفائر (محفوظ) ہو ، چائلڈ کلاس والدین کلاس کے فیلڈز استعمال کر سکے۔

مرحلہ 2) دوسرا مرحلہ ہماری نئی چائلڈ کلاس کو شامل کرنا ہے۔ اس کلاس کا نام 'Guru99Tutorial' ہوگا۔ اس مرحلے میں ، ہم مندرجہ ذیل کوڈ کو Tutorial.cs فائل میں شامل کرتے ہیں۔ کوڈ کو ٹیوٹوریل کلاس کی تعریف کے بعد رکھا جانا چاہیے۔

کوڈ کی وضاحت:-

  1. پہلا قدم گرو 99 ٹیوٹوریل چائلڈ کلاس بنانا ہے۔ ہمیں یہ بھی بتانے کی ضرورت ہے کہ یہ کلاس ٹیوٹوریل کلاس کی چائلڈ کلاس بننے والی ہے۔ یہ ':' کلیدی لفظ کے ذریعہ کیا جاتا ہے۔
  2. اگلا ، ہم ایک طریقہ کی وضاحت کر رہے ہیں جسے RenameTutorial کہتے ہیں۔ یہ ٹیوٹوریل نام فیلڈ کا نام تبدیل کرنے کے لیے استعمال کیا جائے گا۔ یہ طریقہ ایک سٹرنگ متغیر کو قبول کرتا ہے جس میں ٹیوٹوریل کا نیا نام ہوتا ہے۔
  3. پھر ہم نے پیرامیٹر pNewName کو TutorialName فیلڈ میں تفویض کیا۔

    نوٹ : - اگرچہ ہم نے 'Guru99Tutorial' کلاس میں TutorialName فیلڈ کی وضاحت نہیں کی ہے ، پھر بھی ہم اس فیلڈ تک رسائی حاصل کر سکتے ہیں۔ یہ اس حقیقت کی وجہ سے ہے کہ 'Guru99Tutorial' ٹیوٹوریل کلاس کا چائلڈ کلاس ہے۔ اور چونکہ ہم نے ٹیوٹوریل کلاس کے شعبوں کو بطور محفوظ بنایا ہے ، اس کلاس تک ان تک رسائی حاصل کی جا سکتی ہے۔

مرحلہ 3) آخری مرحلہ ہماری اہم Program.cs فائل میں ترمیم کرنا ہے۔ ہماری کنسول ایپلی کیشن میں ، ہم گرو 99 ٹیوٹوریل کلاس کی ایک چیز بنانے جا رہے ہیں۔ اس شے کے ساتھ ، ہم RenameTutorial طریقہ کو کال کرنے جا رہے ہیں۔ اس کے بعد ہم GetTutorial طریقہ کی مدد سے TutorialName فیلڈ ظاہر کرنے جا رہے ہیں۔

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 ٹیوٹوریل کلاس کا RenameTutorial طریقہ استعمال کرتے ہیں۔ ہم سٹرنگ '.Net by Guru99' کو RenameTutorial طریقہ پر منتقل کرتے ہیں۔
  3. اس کے بعد ہم GetTutorial طریقہ کہتے ہیں۔ نوٹ کریں کہ اگرچہ یہ طریقہ گرو 99 ٹیوٹوریل کلاس میں متعین نہیں ہے ، پھر بھی ہم اس طریقہ تک رسائی حاصل کرنے کے قابل ہیں۔ GetTutorial طریقہ کی آؤٹ پٹ پھر Console.WriteLine طریقہ کے ذریعے کنسول پر ظاہر ہوتی ہے۔

اگر مذکورہ کوڈ کو صحیح طریقے سے داخل کیا گیا ہے اور پروگرام کو کامیابی کے ساتھ چلایا گیا ہے تو ، درج ذیل آؤٹ پٹ ظاہر ہوگا۔

آؤٹ پٹ:

آؤٹ پٹ سے ، ہم واضح طور پر دیکھ سکتے ہیں کہ TutorialName فیلڈ کا نام تبدیل کر کے '.Net by Guru99' رکھا گیا ہے۔ یہ نام تبدیل کرنے کے ٹیوٹوریل طریقہ سے ممکن ہوا ہے جسے چائلڈ کلاس نے بلایا ہے۔

C#میں پولیمورفزم کیا ہے؟

پولیمورفزم ایک OOPs تصور ہے جہاں ایک نام کی کئی شکلیں ہوسکتی ہیں۔

مثال کے طور پر ، آپ کے پاس رابطے کے لیے اسمارٹ فون ہے۔ آپ جس مواصلاتی موڈ کا انتخاب کرتے ہیں وہ کچھ بھی ہو سکتا ہے۔ یہ ایک کال ، ایک ٹیکسٹ میسج ، ایک تصویر کا پیغام ، میل وغیرہ ہوسکتا ہے ، لہذا ، مقصد عام ہے جو کہ مواصلات ہے ، لیکن ان کا نقطہ نظر مختلف ہے۔ اسے پولیمورفزم کہتے ہیں۔

اگر ہم یہ عمل دیکھیں گے تو آپ کو بہتر سمجھ آئے گی۔

آئیے اب دیکھتے ہیں کہ ہم اپنے کوڈ میں پولیمورفزم کے تصور کو کیسے شامل کر سکتے ہیں۔

مرحلہ نمبر 1) پہلا قدم ہماری ٹیوٹوریل کلاس کا کوڈ تبدیل کرنا ہے۔ اس مرحلے میں ، ہم مندرجہ ذیل کوڈ کو Tutorial.cs فائل میں شامل کرتے ہیں۔

کوڈ کی وضاحت:-

1 اور 2) پہلا مرحلہ ہماری سابقہ ​​مثالوں کی طرح ہے۔ ہم سیٹ ٹیوٹوریل طریقہ کی تعریف اسی طرح کر رہے ہیں۔

3) یہ طریقہ ٹیوٹوریل آئی ڈی اور ٹیوٹوریل نام پیرامیٹرز پی آئی ڈی اور پی نام پر مبنی ہے۔

4) یہ وہ جگہ ہے جہاں ہم اپنی کلاس میں تبدیلی کرتے ہیں جس میں ہم سیٹ ٹیوٹوریل کے اسی نام کے ساتھ ایک نیا طریقہ شامل کرتے ہیں۔ صرف اس بار ہم صرف ایک پیرامیٹر پاس کر رہے ہیں جو کہ pName ہے۔ اس طریقہ کار میں ، ہم صرف ٹیوٹوریل نام کا فیلڈ pName پر ترتیب دے رہے ہیں۔

مرحلہ 2) آخری مرحلہ ہماری اہم Program.cs فائل میں ترمیم کرنا ہے۔ ہماری کنسول ایپلی کیشن میں ، ہم گرو 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 پیرامیٹرز کے ساتھ SetTutorial طریقہ استعمال کر رہے ہیں۔ جہاں ہم ٹیوٹوریل آئی ڈی اور ٹیوٹوریل نام دونوں کو اس طریقے سے منتقل کر رہے ہیں۔
  2. دوسرے مرحلے میں ، ہم اب SetTutorial طریقہ کو صرف ایک پیرامیٹر کے ساتھ بلا رہے ہیں۔ ہم صرف اس طریقہ کار کو ٹیوٹوریل نام دے رہے ہیں۔

اگر مذکورہ کوڈ صحیح طریقے سے داخل کیا گیا ہے اور پروگرام چلایا جاتا ہے تو درج ذیل آؤٹ پٹ ظاہر ہوگا۔ اگر آپ ٹیوٹوریل آئی ڈی کے ساتھ ٹیوٹوریل نام بھی لانا چاہتے ہیں تو آپ کو درج ذیل مرحلے پر عمل کرنا چاہیے

  1. پبلک انٹ GetTutorialID نامی ایک علیحدہ طریقہ بنائیں۔
  2. اس طریقہ کار میں کوڈ لائن 'ریٹرن ٹیوٹوریل آئی ڈی' لکھیں۔ اس کا استعمال ٹیوٹوریل آئی ڈی کو کالنگ پروگرام میں واپس کرنے کے لیے کیا جا سکتا ہے۔

آؤٹ پٹ:

آؤٹ پٹ سے ، ہم واضح طور پر دیکھ سکتے ہیں کہ دونوں طریقوں کو کامیابی سے بلایا گیا۔ اس کی وجہ سے ، تاریں 'پہلا سبق' اور 'دوسرا سبق' کنسول پر بھیجے گئے تھے۔

خلاصہ

  • وراثت وہ جگہ ہے جہاں بچہ کی کلاس والدین کے طبقے اور طریقوں کو وراثت میں ملتی ہے۔ چائلڈ کلاس پھر اپنے طریقوں کی وضاحت بھی کر سکتی ہے۔
  • پولیمورفزم ایک OOPs تصور ہے جہاں ایک نام کی کئی شکلیں ہوسکتی ہیں۔