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

کلمه کلیدی Super در جاوا

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

کلیدواژه ی super در Java یک متغیر یا آبجکت اشاره گر (reference variable) به نمونه ای از نزدیک ترین کلاس پدر می باشد. هر زمان که توسعه دهنده نمونه ی کلاس فرزند را ایجاد می کند، همزمان یک نمونه از کلاس پدر نیز به صورت ضمنی و غیر مستقیم در حافظه ایجاد می گردد. در Java برای اشاره به این نمونه ی ساخته شده از کلاس پدر از کلیدواژه ی super استفاده می شود.

به عبارت ساده تر، با استفاده از واژه ی کلیدی super می توان در کلاس فرزند، اعضای کلاس پدر را فراخوانی کرد.
موارد کاربرد کلیدواژه ی super در جاوا

با استفاده از super می توان به instance variable (متغیر تعریف شده بیرون از متد و داخل کلاس) نزدیک ترین کلاس پدر اشاره کرده و دسترسی داشت.
با استفاده از کلیدواژه ی super می توان متد نزدیک ترین کلاس پدر را فراخوانی کرد.
با استفاده از تابع ()super می توان تابع سازنده (constructor) نزدیک ترین کلاس پدر (immediate parent) را صدا زد.

استفاده از کلیدواژه ی super جهت دسترسی به instance variable کلاس پدر

می توان با استفاده از کلیدواژه ی super به فیلد، متغیر یا عضو داده ای کلاس پدر به راحتی دسترسی پیدا کرد.

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

مخفی

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

خروجی :

مخفی

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

 

در مثال بالا، Animal و Dog هر دو فیلد مشترکی به نام color را دارند. حال اگر مقدار فیلد color را چاپ کنید، در حالت پیش فرض مقدار فیلد color از کلاس جاری را برای کاربر نمایش می دهد. برای دسترسی و اشاره به این فیلد از کلاس پدر، لازم است از کلیدواژه ی super استفاده نمایید.
استفاده از کلیدواژه ی super جهت فراخوانی متد کلاس پدر

کلیدواژه ی super همچنین می تواند برای فراخوانی متد کلاس پدر بکار رود. این کلیدواژه زمانی استفاده می شود که متد در کلاس فرزند با متد در کلاس پدر یکسان باشد. به عبارت دیگر، کلیدواژه ی super برای فراخوانی متد زمانی مورد استفاده قرار می گیرد که آن متد در بدنه ی کلاس فرزند بازنویسی شده باشد.

مخفی

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

خروجی :

مخفی

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

در مثال بالا، Animal و Dog هر دو متد eat() را دارند. اگر متد eat() را از کلاس Dog فراخوانی کنید، در حالت پیش فرض متد eat() از کلاس جاری (Dog) صدا خورده می شود چرا که اولویت با اعضای محلی کلاس می باشد. جهت فراخوانی متد eat() از کلاس پدر (Animal)، لازم است کلیدواژه ی super را بکار ببرید.
استفاده از super جهت فراخوانی تابع سازنده ی (constructor) کلاس پدر

کلیدواژه ی super می تواند برای فراخوانی تابع سازنده ی کلاس پدر بکار رود. مثال:

مخفی

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

خروجی :

مخفی

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

نکته : چنانچه تابع ()super یا ()this به صورت صریح در کلاس فراخوانی نشده باشند، کامپایلر jvm آن را خود به صورت اتوماتیک در بدنه ی تابع سازنده ی اضافه می کند.

مخفی

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

همان طور که قبلا گفته شد، اگر توسعه دهنده تابع سازنده را صریحا اعلان نکرده باشد، کامپایلر به صورت خودکار یک تابع سازنده پیش فرض اضافه می کند. علاوه بر آن تابع سازنده ی پیش فرض، با قرار دادن دستور ()super در اول بدنه، تابع سازنده ی کلاس پدر را نیز صدا می زند.

در زیر مثال کاربردی دیگری از کلیدواژه ی super را مشاهده می کنید. کامپایلر به صورت ضمنی تابع ()super را فراخوانی می کند.

مخفی

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

خروجی :

مخفی

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

نمونه ای از کاربرد واقعی کلیدواژه ی super

در زیر طی یک مثال کاربردی، مورد استفاده ی واقعی کلیدواژه ی super را مشاهده می کنید. کلاس Emp از کلاس Person ارث بری می کند، بنابراین تمامی ویژگی های (property ها) کلاس Person به صورت پیش فرض در اختیار کلاس Emp قرار می گیرد. به منظور مقداردهی اولیه تمامی property ها (فیلدهای کلاس)، تابع سازنده ی کلاس پدر را در کلاس فرزند صدا می زنیم. بدیهی است که در این راستا تابع سازنده ی کلاس پدر را مجددا استفاده می کنیم.

مخفی

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

خروجی :

مخفی

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

 

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


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

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

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

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

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

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

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

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

ورود به حساب کاربری
    • 1 Posts
    • 34 Views
    • 1 Posts
    • 43 Views
    • 1 Posts
    • 67 Views
    • 1 Posts
    • 93 Views
    • 1 Posts
    • 103 Views
    • 1 Posts
    • 103 Views

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

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