ابسترکت تقریبا شبیه اینتر فیس هست
با این تفاوت که متد ها دارای بادی هستند.
-
ابسترکت ها بر عکس اینترفیس ها که implements میشدن.
extend میشن
نکته زمانی که کلاسی را ابسترکت میکنین نمیتونین از final استفاده کنین.
چون ابسترکت اکستند میشه و final مانع اکستند شدنه
-
شما نمیتوانید از کلاسی که ابسترکت کردین نمونه ایجاد کنید
-
در ابسترکت شما نمیتوانید از مودیفایر پرایویت و پروتکتد استفاده کنین.
مثال :
interface DBDriver { public function connect(); public function execute($sql); } abstract class ReportGenerator { public function generateReport($resultArray) { //write code to process the multidimensional result array and //generate HTML Report } }
همونطور که شما میتونین یه کلاس ابسترکت کنین
میتونین یه متد نیز ابسترکت کنین
-
با این تفاوت که هر زمان که متدیو ابسترکت میکنین
اگر کلاسی از اون کلاس ارث برد.
حتما باید اون متدی که ابسترکت شدرو OVERRIDEکنه