آموزش برنامه نویسی جاوا

آموزش برنامه نویسی جاوا (بخش بیست و یکم: مفاهیم اولیه ارث بری)

مفهوم مهم دیگر در برنامه نویسی Object Oriented (آبجکت محور) مفهوم Inheritance می باشد.

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

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

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

در جاوا ، کلاسی که به ارث برده می شود را سوپر کلاس (SuperClass) و یا پدر می نامند.

کلاسی که عمل ارث بری را انجام داده و ارث برده است را زیر کلاس (SubClass) و یا فرزند می نامند.

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

چگونه روابط ارث بری را در برنامه نویسی تشخیص دهیم؟

در واقع بین کلاس ها ممکن است روابطی وجود داشته باشد.

1- مانند is a part of که به معنی قسمتی است از … می باشد.

در این مورد، یک کلاس قسمتی از کلاس دیگر است. مثلا چرخ قسمتی از ماشین است. پس کلاس چرخ قسمتی از کلاس ماشین می شود.

2- روابطی مانند has knowlege of که یعنی اطلاع داشتن، مثلا یک کلاس ممکن است به صورتی حتی غیر مستقیم از کلاس دیگر اطلاع داشته باشد ولی عضوی از آن نباشد.

3- رابطه ی وراثت که موضوع مورد بحث ما است. یعنی یک کلاس فرزند، نوعی از کلاس پدر باشد.

مثلا یک ماشین نوعی از وسیله ی نقلیه است.

یک روباه یک نوع حیوان است.

یک پسر یک نوع انسان است.

یک مستطیل یک نوع از اشکال هندسی است.

Inheritance نيز به مانند بسیاری از اصولا Object Oriented از دنياي واقعي الگو برداري شده است و کاملا قابل درك مي باشد.

مبانی وراثت

فرض کنید بخواهیم یک کلاس کلی به نام Shape را تعریف کنیم. دو کلاس Triangle و Circle از کلاس Shape به صورت شکل زیر ارث می برند.

در کلاس Shape ، دو متغیر Color و Area وجود دارد.

این دو متغیر عینا در کلاس های Triangle و Circle نیز به ارث برده می شوند. یعنی انگار آن ها هم این متغیرها در خود تعریف کرده باشند. ارث بری کار را ساده می کند، زیرا از آنجایی که دو متغیر Color و Area که رنگ و مساحت هستند در همه اشکال وجود دارند.

پس نیازی به تعریف آن ها در همه ی کلاس ها نیست.

به جای این کار یک کلاس کلی Shape تعریف می کنیم و سپس کلاس های Triangle و Circle را طوری تعریف می کنیم که از کلاس Shape به ارث برده شوند.

حال این دو کلاس نیز هر کدام متغیرها و متدهایی را می توانند برای خود تعریف کنند.

در کدهای برنامه نویسی جاوا چگونه عمل می کنیم؟

برای ارث بردن از یک کلاس ، خیلی ساده کافیست تعریف یک کلاس را با استفاده از واژه کلیدی extends در کلاس دیگری قرار دهید.

به کد مثال زیر دقت نمایید:

public class JavaApplication1 {

static class Shape{
    String Color;
    int Area;

}
static class Circle extends Shape{
    int Radius;   
}

    public static void main(String[] args) {

        Circle MyCircle = new Circle();
        MyCircle.Color="Red";
        MyCircle.Area=113;
        MyCircle.Radius=6;
    } 
}

همان طور که مشاهده می کنید، شی MyCircle یک شی از کلاس Circle است.

کلاس Circle خود، دارای متغیر Radius است. این کلاس از کلاس Shape به عنوان پدر خود، ارث بری می کند.

حال شی MyCircle می تواند علاوه بر متغیرهای کلاس خود (Circle) و متغیرهای کلاس پدر خود (Shape) دسترسی داشته باشد و آن ها را مقداردهی و از آن ها استفاده نماید.

حتی اگر در کامپایلر NetBeans بعد از متغیر MyCircle نقطه بزنید، می توانید متغیرها و متدهایی که می تواند به آن ها دسترسی داشته باشد را مشاهده کنید:

متغیرهای Area و Color در کلاس Shape تعریف شده بودند.

Arash

طراح سایت و برنامه نویس

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا