کلاس چکیده در مقابل کلاس بتنی

بسیاری از زبانهای برنامه نویسی مدرن و محبوب امروزی مانند Java و C # مبتنی بر کلاس هستند. آنها با استفاده از کلاسها به مفاهیم شی گرا مانند کپسوله کردن ، وراثت و چندشکلی دست می یابند. طبقات نمایانگر انتزاعی از اشیاء دنیای واقعی هستند. کلاسها بسته به سطح اجرای کارکردهای روش ، می توانند بصورت مشخص یا انتزاعی باشند. کلاس بتونی تمام روشهای خود را کاملاً پیاده سازی می کند. یک کلاس انتزاعی می تواند به عنوان یک نسخه محدود از یک کلاس معمولی (بتونی) در نظر گرفته شود ، جایی که ممکن است شامل روشهای کاملاً اجرا شده باشد. به طور معمول به کلاسهای بتونی (کلاسهای عادلانه) گفته می شود.

کلاس بتن چیست؟

کلاس پیش فرض یک کلاس بتونی است. کلمه کلیدی کلاس برای تعریف کلاس ها (به عنوان مثال در جاوا) استفاده می شود. و معمولاً به آنها کلاسهایی گفته می شود (بدون بتن صفت). کلاس های بتونی بازنمایی مفهومی اشیاء دنیای واقعی را نشان می دهند. کلاس ها دارای خصوصیاتی به نام ویژگی هستند. ویژگی ها به عنوان متغیرهای جهانی و نمونه اجرا می شوند. روش های موجود در کلاس ها بیانگر یا تعریف رفتار این کلاس ها است. روش ها و ویژگی های کلاس ها اعضای کلاس نامیده می شوند. به طور معمول ، محفوظ سازی با خصوصی سازی خصوصیات حاصل می شود ، ضمن ایجاد روش های عمومی که می تواند برای دستیابی به آن صفات مورد استفاده قرار گیرد. یک شیء نمونه یک کلاس است. وراثت به کاربر این امکان را می دهد که کلاسها (به نام کلاسهای زیر) را از سایر کلاسها (به نام کلاسهای فوق العاده) گسترش دهد. پلی مورفیسم به برنامه نویس اجازه می دهد تا یک شیء از کلاس را به جای یک شیء از کلاس فوق العاده خود جایگزین کند. به طور معمول ، اسمهای موجود در تعریف مسئله به طور مستقیم در کلاس برنامه می شوند. و به همین ترتیب ، افعال به روش تبدیل می شوند. عمومی ، خصوصی و محافظت شده اصلاح کننده های دسترسی معمولی هستند که برای کلاس ها استفاده می شوند.

کلاس چکیده چیست؟

کلاس های انتزاعی با استفاده از کلید واژه چکیده (به عنوان مثال در جاوا) اعلام می شود. به طور معمول ، کلاسهای چکیده ، همچنین به عنوان کلاسهای پایه انتزاعی (ABC) شناخته می شوند ، نمی توانند از طریق مسنجر (نمونه ای از آن کلاس ایجاد نشوند). بنابراین ، کلاس های چکیده فقط معنی دارند که اگر زبان برنامه نویسی از ارث پشتیبانی می کند (توانایی ایجاد زیر کلاس از گسترش یک کلاس). کلاسهای انتزاعی معمولاً مفهوم انتزاعی یا موجودی را با اجرای جزئی یا بدون اجرا نشان می دهند. بنابراین کلاسهای چکیده به عنوان کلاسهای والدین عمل می کنند که کلاسهای کودک از آنها مشتق می شود به طوری که کلاس کودک ویژگیهای ناقص کلاس والدین را به اشتراک می گذارد و می توان عملکرد آن را برای تکمیل آنها اضافه کرد.

کلاسهای چکیده ممکن است شامل روشهای چکیده باشد. کلاسهای فرعی که یک کلاس انتزاعی را گسترش می دهند ممکن است این روشهای انتزاعی (ارثی) را پیاده سازی کنند. اگر کلاس کودک تمام این روشهای چکیده را اجرا کند ، به یک کلاس بتونی تبدیل می شود. اما اگر اینطور نشود ، کلاس کودک نیز به کلاس انتزاعی تبدیل می شود. معنی این همه این است که وقتی برنامه نویس یک کلاس را به عنوان چکیده معرفی می کند ، او می گوید که این کلاس ناقص خواهد بود و دارای عناصری خواهد بود که باید توسط زیر کلاس های ارثی تکمیل شوند. این یک روش خوب برای ایجاد قرارداد بین دو برنامه نویس است که کارها را در توسعه نرم افزار ساده می کند. برنامه نویس ، که می نویسد کد را به ارث ببرد ، باید تعاریف روش را دقیقاً دنبال کند (اما البته می تواند اجرای خودش را داشته باشد).

تفاوت بین کلاس چک و کلاس بتن چیست؟

کلاسهای چکیده معمولاً اجرای جزئی یا بدون اجرای آن دارند. از طرف دیگر ، کلاسهای بتونی همیشه عملکرد کاملی از رفتار آن دارند. برخلاف کلاس های بتونی ، کلاس های انتزاعی را نمی توان از طریق مسنجر شروع کرد. بنابراین باید کلاسهای انتزاعی گسترش یابد تا آنها مفید واقع شوند. کلاسهای انتزاعی ممکن است شامل روشهای انتزاعی باشد ، اما کلاسهای بتونی نمی توانند. وقتی یک کلاس انتزاعی تمدید شود ، تمام روش ها (اعم از انتزاعی و بتن) به ارث می رسد. کلاس ارثی می تواند هر یا تمام روش ها را پیاده سازی کند. اگر همه روشهای انتزاعی اجرا نشوند ، آن کلاس نیز به کلاس انتزاعی تبدیل می شود.