✅ چرا توابع آبسترکت نمیتوانند پرایوت، فاینال یا استاتیک باشند؟⏰زمان مطالعه: 1:00
متد
abstract بدنه ای ندارد و حتما باید در کلاس فرزند
Override شود.
🔗 در مورد Overriding از اینجا بخوانید⬅️ وقتی شما متدی رو
final تعریف میکنید، به این معناست که تابع اجازه ی
Override شدن را ندارد که این با مفهوم
abstract در تضاد است.
🔗در رابطه با کلیدواژه final از اینجا بخوانید⬅️ در خصوص پرایوت نیز به همین صورت است. متد پرایوت یعنی فقط در سطح خود کلاس قابل دسترسی است و نمیتوان آن را
Override کرد که این باز هم با مفهوم
abstract در تناقض است.
🔗 در مورد سطوح دسترسی از اینجا بخوانید⬅️ در رابطه با استاتیک، وقتی متدی رو استاتیک تعریف میکنید، یعنی متد متعلق به کلاس است نه آبجکت! به عبارتی با
ClassName.method() صدا زده میشود و هیچ ارتباطی به شی ساخته شده ندارد. در صورتی که متد
abstract باید توسط کلاس فرزند پیاده سازی شده و طریق پلی مورفیسم روی آبجکت صدا زده شود. در ضمن متدی که استاتیک باشد را نمیتوان اورراید کند.
🔗 در رابطه با استاتیک از اینجا بخوانید✒️ محمدرضا عظیمی فرد———
#abstract4️⃣ @PieceJava