کلاس ها و متدهای مجرد یا Abstract در جاوا :
در زبان برنامهنویسی جاوا، مفهوم کلاس های مجرد یا Abstract وجود دارد. کلاس های مجرد یک نوع ویژگی برای کلاس ها در جاوا است. یک کلاس مجرد نمیتواند به صورت مستقیم از آن نمونهسازی شود و تنها برای ارائه یک پایه برای سایر کلاس ها استفاده میشود.
به عبارت دیگر، کلاس های مجرد یک الگو برای کلاس های مشتق شده ارائه میدهند. این الگوها شامل تعریف متدهای مجرد هستند که باید در کلاس های مشتق شده پیادهسازی شوند. با این کار، کلاس های مشتق شده مجبور میشوند متدهای مجرد را پیادهسازی کنند و امکان دسترسی به آنها را داشته باشند.
استفاده از کلاس های مجرد در جاوا میتواند به ساختار و نظم کد کمک کند. با تعریف متدهای مجرد در کلاس های مجرد، میتوانیم رفتار مشترکی را بین کلاس های مشتق شده ایجاد کنیم و کد تکراری را کاهش دهیم. همچنین، با تعیین متدهای مجرد، میتوانیم اجبار کنیم کلاس های مشتق شده این متدها را پیادهسازی کنند و در غیر این صورت خطا در زمان کامپایل رخ میدهد.
برای تعریف یک کلاس مجرد در جاوا، کلیدواژه abstract قبل از تعریف کلاس قرار میگیرد. به عنوان مثال، در مثال زیر یک کلاس مجرد به نام Animal تعریف شده است:
abstract class Animal {
// تعریف متدهای مجرد
abstract void sound();
abstract void eat();
}
کلاس Animal شامل دو متد مجرد به نام sound و eat است. این متدها به صورت پیشفرض بدون بدنه تعریف میشوند و کلاس های مشتق شده مجبور هستند آنها را پیادهسازی کنند. برای مثال، اگر یک کلاس به نام Dog از کلاس Animal مشتق شود، باید متدهای sound و eat را پیادهسازی کند.
برای پیادهسازی متدهای مجرد در کلاس های مشتق شده، کلیدواژه override قبل از تعریف متد قرار میگیرد. به عنوان مثال، متد sound در کلاس Dog به صورت زیر پیادهسازی میشود:
class Dog extends Animal {
@Override
void sound() {
System.out.println(“وان وان”);
}
// پیادهسازی متد eat
@Override
void eat() {
System.out.println(“سگ غذا میخورد”);
}
}
در این مثال، کلاس Dog از کلاس Animal مشتق شده است و متدهای sound و eat را پیادهسازی کرده است. با این کار، کلاس Dog دسترسی به متدهای sound و eat را دارد و میتواند از آنها استفاده کند.
به طور خلاصه، کلاس های مجرد در جاوا از طریق تعریف متدهای مجرد به کلاس های مشتق شده قوانینی را تحمیل میکنند. این قوانین شامل پیادهسازی متدهای مجرد و دسترسی به آنها است. با استفاده از کلاس های مجرد، میتوانیم کد را سازماندهی کنیم و از تکرار کد جلوگیری کنیم.