معرفی
در این مقاله با کلاس Abstract و Interface در زبان برنامه نویسی جاوا آشنا می شویم. کلاس انتزاعی و رابط کاربری برای انتزاع استفاده می شود. هم کلاس Abstract و هم رابط را نمی توان راه اندازی کرد.
کلاس انتزاعی
در جاوا وقتی از کلمه کلیدی انتزاعی با هر کلاسی استفاده می کنیم، به این کلاس کلاس انتزاعی می گویند. یک کلاس انتزاعی می تواند دارای متغیرها، متد انتزاعی، بدنه متد، سازنده و متد main () نیز باشد. در اینجا چند نکته مهم در مورد کلاس Abstract وجود دارد.
- یک کلاس انتزاعی می تواند متدهای انتزاعی و متدهای غیرانتزاعی داشته باشد.
- اگر کلاسی دارای متد انتزاعی باشد، این کلاس باید یک کلاس انتزاعی باشد.
- اگر بخواهیم از یک کلاس انتزاعی استفاده کنیم، باید آن را توسعه داده و متد آن را پیاده سازی کنیم.
- اگر یک کلاس انتزاعی را گسترش دهیم، باید برای تمام متدهای انتزاعی موجود در آن پیاده سازی ارائه کنیم.
- ما نمی توانیم یک کلاس انتزاعی را نمونه سازی کنیم.
برنامه کامل یک کلاس انتزاعی در زیر فهرست شده است.
- abstract class AbstractClass {
- abstract void display();
- }
- public class AbstractClassexample extends AbstractClass {
- void display() {
- System.out.println("Abstract class example");
- }
- public static void main(String args[]) {
- AbstractClass p = new AbstractClassexample();
- p.display();
- }
- }
برنامه فوق خروجی زیر را تولید می کند.
رابط
یک اینترفیس در جاوا شبیه به یک کلاس است و می توان گفت که طرحی از یک کلاس است. در اینجا چند نکته مهم در مورد کلاس Abstract وجود دارد.
- این رابط عمدتاً برای دستیابی به انتزاع کامل در جاوا استفاده می شود.
- رابط فقط دارای ثابت های ایستا و بدنه روش انتزاعی است و بدنه روش ندارد.
- رابط از وراثت چندگانه در جاوا پشتیبانی می کند.
- یک رابط رابطه IS-A را نیز نشان می دهد.
- رابط را نمی توان نمونه سازی کرد، مانند یک کلاس انتزاعی.
در جاوا، کامپایلر به طور پیش فرض کلیدواژه های عمومی و انتزاعی را قبل از متد رابط و کلیدواژه عمومی، ایستا و نهایی را قبل از متغیرها اضافه می کند. یعنی همه متغیرهای یک رابط عمومی، ایستا، نهایی و متدها عمومی و انتزاعی هستند.