abstract در جاوا (java abstraction)

در این جلسه، تیم کدگیت را با آموزش abstract در جاوا همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با شی گرایی
  2. آشنایی با متد
  3. آشنایی با override

Abstraction

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

کلاس Abstract در جاوا

کلاسی که کلمه کلیدی abstract در آن استفاده شود را کلاس abstract در جاوا میگوییم. این کلاس میتواند شامل متدهای  abstract (متد بدون بدنه یا body) و غیر abstract(متد با پیاده سازی یا بدنه) باشد. کلاس abstract فقط میتواند extends شود و باید متدهای آن پیاده سازی شود. کلاس Abstract را نمیتوان new کرد.

متد abstract در جاوا

متد abstract متدی است که هیچگونه پیاده سازی از خودش ندارد و مثال زیر یک نمونه متد  abstract است:

مثال اول abstract در جاوا

یک کلاس به نام Bike داریم که آن را به صورت abstract تعریف کردیم. کلاس دیگری به نام Honda کلاس Bike را extends کرده است. ما در کلاس Bike یک متد abstract به نام Run تعریف کردیم. چون این متد abstract هست باید در کلاس فرزندش یعنی Honda پیاده سازی شود. کد abstract در جاوا به صورت زیر است:

برای تست کدهای بالا، کد main زیر را بزنید:

مثال دوم abstract در جاوا

یک کلاس abstract داریم به نام shape که متدی به نام draw در خود دارد. این متد نیز abstract است.دو کلاس دیگر به نام Circle و Rectangle داریم که  کلاس shape را extends میکنند. دو کلاس Circle و Rectangle باید متد draw را در خود داشته باشند.کد این کلاس ها به صورت زیر است:

برای تست کدهای بالا کد زیر را بزنید:

abstract در جاوا به ما کمک کرد کلاس های خود را از هم متمایز کنیم. در کد main ما از هیچکدام از کلاس های abstract استفاده نکردیم. همانطور که گفتیم نمیتوانیم این نوع کلاس ها را new کنیم.

پسورد: www.codegate.ir

 

دسته : java, آموزش قدم به قدم جاوا, جاوا, شی گرایی در جاوا

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz