رفتن به مطلب
محفل من
Mostafa

آموزش وراثت در سی شارپ

پست های پیشنهاد شده

یکی از جنبه های کلیدی زبان های برنامه نویسی شی گرا Objected Oriented Programming (OOP) از جمله C# بر پایه آن بنا شده است، مفهوم ارث بری یا Inheritance می باشد. ارث بری یعنی تولید کلاس هایی جدید که برخی از ویژگی های خود را از کلاس مادر Parent Class به ارث برده اند.
حتی اگر کل چهارچوب کاری NET. بر پایه مفهوم ارث بری نباشد، ولی جمله معروف “همه چیز شی یا object است” از نتایج آن است. در زبان C#، حتی یک عدد ساده نمونه ای از یک کلاس است که خود از کلاس پایه System.object به ارث رفته است. اگرچه چهارچوب کاری NET.، این امکان را نیز برای شما فراهم کرده تا مقدار مورد نظر خود را مستقیما به یک عدد بدهید، بدون آن که نیاز داشته باشید تا نسخه جدیدی از کلاس Integer ایجاد کنید.
شاید بیان مفهوم ارث بری کمی سخت باشد، اما ارایه مثال های عملی کمک شایانی در این زمینه می کند. نمونه کد زیر یک مثال ساده از مفهوم ارث بری در زبان C# است :

مخفی

    برای مشاهده مطلب باید در سایت ثبت نام کنید و سپس وارد شوید.

در کد فوق، در مرحله اول یک کلاس به نام Animal Class تعریف کرده ایم و دارای یک متد ساده جهت چاپ پیام خوش آمد گویی است. سپس کلاس Dog را ایجاد کرده و با قرار دادن یک : در مقابل آن، به C# اعلام کرده ایم این کلاس بایستی از کلاس Animal به ارث رود. نکته جالب در مورد مثال فوق این است که رابطه سگ و حیوان نیز در طبیعت به همین صورت می باشد، یعنی Dog زیرمجموعه ای از حیوانات است. اکنون بیایید روش به کار بردن کلاس ها را بررسی کنیم :

مخفی

    برای مشاهده مطلب باید در سایت ثبت نام کنید و سپس وارد شوید.

اگر کد مثال فوق را اجرا نمایید، خواهید دید با وجودیکه متد Greeting() را برای کلاس Dog تعریف نکرده ایم، اما این کلاس می تواند به پیام خوش آمد بگوید، زیرا متد Greeting() را از کلاس مادر خود یعنی Animal Class به ارث برده است.
البته پیام خوش آمدگویی اولیه کد فوق، کمی نامفهوم است. اجازه دهید کدی به مثال قبلی اضافه کنیم تا بدانیم چه حیوانی به ما خوش آمد می گوید.

مخفی

    برای مشاهده مطلب باید در سایت ثبت نام کنید و سپس وارد شوید.

در کنار متد اضافه شده به کلاس Dog Class، دو چیز مهم را مشاهده می کنید. ما کلمه کلیدی مجازی (Virtual keyword) را به متد کلاس Animal Class اضافه کرده ایم، از طرف دیگر کلمه کلیدی override را نیز برای کلاس Dog Class به کار برده ایم.
در زبان C#، شما نمی توانید عضو (member) یک کلاس را بازنویسی یا override کنید، مگر این که آن را به عنوان virtual تعیین کرده باشید. اگر هم بخواهید، می توانید متد به ارث برده شده را با به کار بردن کلمه کلیدی base، به صورت اولیه خود فراخوانی کنید. به صورت کد مثال زیر:

مخفی

    برای مشاهده مطلب باید در سایت ثبت نام کنید و سپس وارد شوید.

تنها متدها (Methods) نیستند که می توان آن ها را در کلاس ها به ارث برد، سایر اعضای یک کلاس مثل فیلدها (Fileds) و خواص (Properties) نیز خاصیت ارث بری دارند. فقط بایستی به قواعد بازه دسترسی (access modifier) که در درس قبل تشریح کردیم، توجه کنید. ارث بری یا Inheritance فقط مختص یک کلاس به کلاس دیگر نیست. شما می توانید یک سلسله مراتب از کلاس های مرتب به هم را بسازید. برای مثال می توانید یک کلاس به نام Puppy ایجاد کرده که خودش از کلاس Dog به ارث برود، در حالی که Dog فرزند کلاس Animal است.

نکته : شما در C# نمی توانید کاری کنید که یک کلاس از چند کلاس مختلف به ارث برود. به این کار ارث بری چندگانه (multiple inheritance) می گویند که در C# پشتیبانی نمی شود.

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری
    • 1 Posts
    • 29 Views
    • 1 Posts
    • 24 Views
    • 1 Posts
    • 43 Views
    • 1 Posts
    • 51 Views
    • 1 Posts
    • 67 Views
    • 1 Posts
    • 75 Views
    • 1 Posts
    • 51 Views

  • سفارش پروژه برنامه نویسی

×
×
  • اضافه کردن...