دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۴
  • مهر

جلسه ۲۱ : ویژگی overriding در جاوا

  • دسته‌بندی‌ها :
جلسه ۲۱ : ویژگی overriding در جاوا
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرنو کاربرانی که دوره کامل آموزش برنامه نویسی جاوا را دنبال می کنند. در بخش قبلی ما در مورد سوپر کلاس ها و زیر کلاس صحبت کردیم. اگر یک کلاس یک ابر کلاس خود را به ارث برساند، در این صورت فرصتی برای متوقف کردن متدی وجود دارد که مشخص نشده است. مزیت اصلی این است که توانایی تعریف رفتار خاصی که به نوع زیر کلاس می دهد، به این معنی که یک زیر کلاس می تواند یک کلاس والد بر اساس نیازش اجرا کند. در شرایط شیء گرایی، ویژگی overriding در جاوا به معنای لغو کردن عملکرد یک متد موجود است، برای درک بهتر این مفاهیم و آشنایی با ویژگی overriding در جاوا در ادامه ی این آموزش با ما همراه باشید.

      ویژگی overriding در جاوا

      در ادامه ی مباحث این بخش شما را با ویژگی overriding در جاوا با ارائه ی چند مثال آشنا می کنیم.

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

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

      مثال : 

      نتیجه ی اجرای کد فوق در جاوا بصورت زیر خواهد بود:

      مثال : 

      در مثال فوق شما می توانید ببینید که حتی اگر b از نوع حیوان باشد، متد move در کلاس Dog اجرا می شود.

      دلیل این امر این است: در زمان کامپایل، Check بر روی نوع مرجع ساخته می شود.

      با این حال، در زمان اجرا، JVM نوع شیء را مشخص می کند و متد که متعلق به آن را اجرا می کند.

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

      سپس، در زمان اجرا، متد خاص برای آن شی را اجرا می کند.

      مثال زیر را در نظر بگیرید:

      مثال : 

      نتیجه ی اجرای کد فوق بصورت زیر است:

      مثال : 

      این برنامه یک خطای زمان کامپایل را از نوع مرجع b می گیرد. چراکه Animal یک متد با نام bark ندارد.

      قوانین متد overriding 

      • لیست آرگومان باید دقیقا همان متد متداول باشد.
      • نوع بازگشت باید یکسان باشد.
      • سطح دسترسی نمی تواند محدودتر از سطح دسترسی متد باشد.

                مثال: اگر متد در سوپر کلاس بصورت عمومی اعلام شود، متد subclass نمی تواند خصوصی یا محافظت شده باشد.

      • متد های نمونه را می توان تنها اگر آنها توسط زیر کلاس به ارث برده شوند، لغو کنید.
      • متد اعلام شده نهایی نمی تواند لغو شود.
      • یک متد اعلام شده استاتیک را نمی توان لغو کرد، اما می توان آن را دوباره اعلام کرد.
      • اگر یک متد نمی تواند به ارث برده شود، نمی توان آن را لغو کرد.
      • یک زیر کلاس در بسته ی مشابه به عنوان superclass می تواند هر نوع در متد ابرکلاس که خصوصی یا نهایی نیست اعلام شود.
      • یک زیر کلاس در یک بسته متفاوت می تواند تنها روش های غیر انتفاعی اعلام شده عمومی یا محافظت شده را لغو کند.
      • یک متد مهم می تواند هرگونه خطا را نادیده بگیرد، صرفنظر از این که آیا متد لغو شده خطا را حذف می کند یا خیر.
      • Constructors (سازندگان) نمی توانند لغو شوند.
      • استفاده از کلمه ی کلیدی super

      کلمه ی کلیدی super در یک متد لغو شده ی ابر کلاس استفاده می شود:

      مثال : 

      نتیجه ی اجرای کد فوق در جاوا بصورت زیر خواهد بود:

      مثال : 

      کلام آخر

      در این بخش یاد گرفتیم که ویژگی overriding در جاوا در بحث شیء گرایی چه طور عملکرد یک متد را لغو می کند. و همچنین با قوانین و ویژگی های overriding در جاوا نیز آشنا شدیم. در بخش بعدی به مباحث پلی مورفیسم در جاوا اشاره خواهیم کرد.

      QR:  جلسه ۲۱ : ویژگی overriding در جاوا
      به اشتراک بگذارید