در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

تفاوت میان Has a و Is a در مبحث وراثت

یکی از اصول مهم در برنامه نویسی شئ گرا وراثت یا Inheritance است. معمولاً وراثت را با این تعریف می شناسیم: وراثت یا Inheritance اشاره به این قابلیت دارد که یک کلاس می تواند خصوصیات و رفتار های تعریف شده در یک کلاس دیگر را به ارث ببرد. اما در برخی مطالب با دو عبارت Is a و Has a برخورد می کنیم که مربوط به مبحث وراثت هستند. در این مطلب می خواهیم در مورد این دو در وراثت صحبت کنیم.


مفهوم Is a


فرض کنید کلاسی داریم به نام Person و کلاسی دیگر به نام Teacher که از کلاس Person مشتق شده است:

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

public class Teacher : Person
{
    public string Certificate { get; set; }
}

در کد بالا، کلاس Teacher از کلاس Person مشتق شده، یعنی Teacher یک Person آست و اصطلاحا می گویم: Teacher is a person


مفهوم Has a


برای درک این مفهوم، مثالی میزنیم از ماشین و سیستم پخش. کلاسی داریم با نام Car:

public class Car
{
    public string Color { get; set; }
    public string Brand { get; set; }
    public string Model { get; set; }
}

در ادامه می خواهیم به Car یک سیستم پخش اضافه کنیم، کلاسی با نام Player به صورت زیر تعریف می کنیم:

public class Player
{
    public string SupportedMedia { get; set; }
    public string Model { get; set; }

    public void Play()
    {
            
    }

    public void Stop()
    {
            
    }
}

در در ادامه کلاس Car را به صورت زیر تغییر می دهیم:

public class Car
{
    public string Color { get; set; }
    public string Brand { get; set; }
    public string Model { get; set; }

    public Player Player { get; set; }
}

خصوصیت Player که از نوع کلاس Player است به کلاس Car اضافه شده. در حقیقت کلاس Car یک Player دارد و اصطلاحاً می گوییم: Car has a player

پس تفاوت Is a با Has a در وراثت را اینگونه مطرح می کنیم: در حالت Is a کلاس ما به صورت مستقیم از یک کلاس دیگر مشتق می شود، اما در حالت Has a، کلاس ما یک کلاس دیگر را در خود جای داده است.

امیدوارم که این نکته مورد توجه دوستان قرار گرفته باشد. ITPRO باشید

نویسنده: حسین احمدی

منبع: ITPRO

#تفاوت_میان_has_a_و_is_a_در_وراثت #برنامه_نویسی_شئ_گرا #inheritance_در_برنامه_نویسی_شئ_گرا #وراثت_در_برنامه_نویسی_شئ_گرا #وراثت_چیست
1 نظر
عزیزاله بندزن

عالی بود ، خسته نباشید

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....