آشنایی با مفهوم انتزاع (Abstraction) :
کلاس های Abstraction در جاوا :
در بیشتر موارد ما کلاس ها را طراحی می کنیم تا از روی آنها شئ هایی بسازیم. اما کلاس هایی وجود دارند که از آنها شئ ساخته نمی شود به این کلاس ها، کلاس های انتزاعی می گویم. هدف از ایجاد کلاس انتزاعی، ایجاد یک ابر کلاس مناسب است که می توانند یک یا چند ویژگی کلی و مشترکی را بین زیر کلاس های خود به اشتراک بگذارد.پس انتزاعی سازی می تواند به کاهش پیچیدگی کمک کند. دو روش برای پیاده سازی مفهوم Abstraction در جاوا وجود دارد:
- Abstract class
- Interface
بیایید این مفاهیم را با جزئیات بیشتری برسی کنیم.
کلاس abstract در جاوا :
برای تعریف کلاس abstract در جاوا باید از کلید واژه abstract استفاده شود. زمانی که شما یک کلاس را به صورت abstract تعریف می کنید دیگر امکان تعریف نمونه سازی از کلاس را ندارید. برای استفاده از کلاس abstract باید این کلاس توسط کلاس های دیگر به ارث برده شود.
- در داخل این کلاس می توانیم فید ها و متد هایی را تعریف کنیم.
- متد هایی که داخل کلاسabatract تعریف می شوند می توانند بدون بدنه (متد های abstract) یا با بدنه (همان متد های معمولی) باشند.
- متد هایی که با کلمه abstract تعریف می شوند فاقد بدنه هستند. در این متد ها فقط پیش الگوی متد (نام و نوع متد و پارامتر های متد) نوشته می شود. در واقع متد های abstract داخل کلاس کاری انجام نمی دهند ما فقط متد را داخل کلاس تعریف می کنیم.
- برای استفاده از کلاس abstract در جاوا، باید این کلاس را توسط کلاسی دیگر ارث بری کنید . کلاسی که از کلاس abstract ارث بری می کند باید تمام متد های abstract را دوباره نویسی و پیاده سازی کند یعنی بدنه توابع را تعیین کند.
- بدنه متد abstract توسط زیر کلاس ها مشخص می شود و هر کدام از زیر کلاس ها پیاده سازی مخصوص به خود را انجام می دهند.
- کلاس های abstract می تواند متد های معمولی یا غیر abstract داشته باشد. همان طور که می دانید متد های معمولی باید بدنه داشته باشند و نیازی به پیاده سازی ندارند.
- با استفاده از کلاس abstract در جاوا ما می توانیم درصدی (0 تا 100 درصد) انتزاعی سازی داشته باشیم.
بیشتر بخوانید: آموزش متدهای generic در جاوا را کم ترین زمان ممکن یاد بگیر
Interface در جاوا :
اینترفیس در جاوا مانند یک طرح یا نقشه کلی برای کلاس می باشد. داخل interface برنامه نویس می تواند فقط متدهای abstract و بدون بدنه تعریف کند. در interface مشخصات کلی متد تعریف میشود و این کلاس های مشتق شده هستند که ملزم به پیاده سازی کامل متد ها هستند.
- فیلد های داخل interface به صورت پیش فرض final ,static ,public هستند و متد های تعریف شده abstract ,public می باشند.
- یکی از ویژگی های مهم interface ها فراهم سازی ارث بری چند گانه برای برنامه نویسی جاوا است. به کمک ارث بری چند گانه یک کلاس میتواند فرزند دو یا چند interface باشد.
- مانند کلاس abstract امکان نمونه سازی از روی interface وجود ندارد.
- با استفاده از interface ها میتوانیم 100 درصد مفهوم انتزاعی سازی را پیاده سازی کنیم.
بنابراین، هر دو کلاس abstract و interfaceها برای پیاده سازی Abstraction در جاوا استفاده می شود و هرکدام راه حل هایی را در هنگام طراحی ارائه می دهند که هر دو راه حل از اهمیت ویژه ای برخوردار هستند. اما بهترین انتخاب برای اکثر توسعه دهندگان استفاده از interface هاست زیرا می توانند به کمک آنها مفهوم انتزاع را کامل پیاده سازی کنند.
برای آشنایی بیشتر مفهوم Abstraction در جاوا، آموزش های ویژه ای را برای شما آماده کرده ایم که صدرصد رایگان هستند با تهیه دوره آموزش جاوا می توانید تمام مباحث برنامه نویسی جاوا را همراه با مثال های کاربردی فرا گیرید. پس این فرصت فوق العاده را از دست ندهید و با درسمن سرعت یادگیری و پیشرفت خود را افزایش دهید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.