کلاس انتزاعی و رابط هر دو در درجه اول برای انتزاع مورد استفاده قرار می گیرند ، با این حال آنها بسیار متفاوت از یکدیگر هستند. هر دو بخش اصلی جاوا هستند اما کاربردهای خاص خود را دارند. در حالی که هر دو اصطلاح ممکن است با یکدیگر مترادف باشند ، اما نمی توان آنها را به صورت متقابل استفاده کرد.

بین این دو تفاوت معنی داری وجود دارد. در حالی که یک روش رابط بصورت پیش فرض انتزاعی است ، یک چکیده می تواند شامل هر دو روش انتزاعی و غیر انتزاعی باشد. خوب ، از جاوا 8 ، رابط ها همچنین دارای پیاده سازی متد هستند و می توانند هم از روش های ایستا و هم به صورت پیش فرض در جاوا داشته باشند. بیایید تفاوت بین این دو را با جزئیات مطالعه کنیم.

تفاوت بین خلاصه کلاس و رابط در جاوا

یک کلاس چکیده در جاوا چیست؟

کلاس انتزاعی در جاوا کلاسی است که انتزاعی اعلام می شود - ممکن است شامل روشهای انتزاعی باشد. این کاملاً شبیه به رابط جاوا است به جز این واقعیت که می تواند حاوی پیاده سازی روش پیش فرض باشد. مانند برنامه نویسی شی گرا ، انتزاع در جاوا با استفاده از کلاسهای انتزاعی و واسطها حاصل می شود. در جاوا ، انتزاع به معنای پنهان کردن جزئیات نامربوط از کاربر است تا تنها بر روی جزئیات ضروری متمرکز شود تا کارایی خود را افزایش داده و از این طریق پیچیدگی را کاهش دهد. کلمه کلیدی "انتزاعی" برای ایجاد یک کلاس انتزاعی درست قبل از کلمه کلیدی کلاس در بیانیه کلاس استفاده می شود.

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

رابط چیست؟

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

تفاوت بین خلاصه کلاس و رابط در جاوا


  1. "وراثت چندگانه" کلاس انتزاعی و رابط در جاوا - با وجود این واقعیت که کلاس انتزاعی و رابط در درجه اول برای انتزاع استفاده می شوند ، اما کاملاً متفاوت از یکدیگر هستند. در حالی که یک کلاس انتزاعی یک کلاس است ، یک رابط یک رابط است. این بدان معناست که در حالی که یک رابط فقط می تواند یک رابط جاوا دیگر گسترش دهد ، یک کلاس انتزاعی می تواند ارث های چندگانه را در جاوا پیاده سازی کند. خوب ، جاوا از میراث چندگانه پشتیبانی نمی کند اما می توان ارث های چندگانه را در جاوا پیاده سازی کرد.
    "نوع روش" کلاس انتزاعی و رابط در جاوا - دومین تفاوت عمده بین این دو در این است که در حالی که یک رابط فقط می تواند دارای روشهای انتزاعی باشد ، یک کلاس انتزاعی می تواند هر دو روش انتزاعی و غیر انتزاعی را داشته باشد. با این حال ، از جاوا 8 ، یک رابط می تواند روش های پیش فرض و استاتیک نیز داشته باشد.
    "دسترسی اصلاح" از کلاس انتزاعی و رابط در جاوا - یک کلاس انتزاعی می تواند اصلاح کننده دسترسی عمومی ، خصوصی و محافظت شده داشته باشد ، اما روش های یک رابط بطور ضمنی عمومی و انتزاعی است. با روش های رابط کاربری نمی توانید از هیچ اصلاح کننده دسترسی دیگری استفاده کنید.
    "اجرای" کلاس انتزاعی و رابط در جاوا - یک کلاس انتزاعی می تواند اجرای یک رابط را فراهم کند. از سوی دیگر یک رابط نمی تواند اجرای کلاس انتزاعی را فراهم کند.
    "کلید واژه" کلاس چکیده و رابط در جاوا - در حالی که از کلمه کلیدی "انتزاعی" برای اعلام یک روش کلاس انتزاعی به عنوان انتزاعی استفاده می شود ، با این حال ، رابط ها کاملاً داستانی متفاوت هستند. آنها فقط می توانند ثابت های ثابت عمومی و اعلامیه روش داشته باشند.
    "استفاده" از کلاس چکیده و رابط در جاوا - در حالی که یک رابط برای اعلام نوع ایده آل است ، یک کلاس انتزاعی برای استفاده مجدد از کد و چشم انداز تکامل مناسب است. یک رابط مانند یک کلاس است ، اما یک کلاس نیست.
    "قابلیت اطمینان" کلاس انتزاعی و رابط در جاوا - تفاوت اصلی دیگر بین یک کلاس انتزاعی و یک رابط در این است که حالت اولیه کمی سریعتر از حالت دوم است زیرا یک جستجو معمولاً قبل از هر روش پرشده در جاوا در یک رابط انجام می شود.
    "متغیرهای نهایی" کلاس انتزاعی و رابط در جاوا - متغیرهای اعلام شده در یک رابط به طور پیش فرض نهایی هستند ، در حالی که یک کلاس انتزاعی ممکن است متغیرهای غیر نهایی باشد یا نباشد.

جدول کلاس در مقابل رابط در جاوا: جدول مقایسه

خلاصه نکات در مورد کلاس کلاس و رابط در جاوا

هر دو کلاس انتزاعی و رابط برای انتزاع استفاده می شوند. با این حال ، آنها سهم منصفانه ای از اختلافات دارند. تفاوت اصلی بین این دو با روشهای انتزاع رانده می شود. در حالی که اولی ممکن است یا ممکن است روشهای انتزاعی نداشته باشد ، دومی به طور ضمنی انتزاعی است. یک کلاس انتزاعی می تواند هر دو روش انتزاعی و غیر انتزاعی داشته باشد. از طرف دیگر ، رابط فقط می تواند روش انتزاعی داشته باشد ، بنابراین آنها نمی توانند پیاده سازی شوند ، به این معنی که یک رابط نمی تواند دارای روشهای غیر انتزاعی باشد. یک کلاس انتزاعی را نمی توان از طریق مسنجر انجام داد که منع ایجاد یک شیء را ممنوع می کند. از طرف دیگر ممکن است یک رابط مانند کلاس باشد اما چنین نیست.

منابع

  • بلوچ ، جوشوا. راهنمای زبان برنامه نویسی موثر جاوا. بوستون: آدیسون وسلی ، 2001. چاپ
  • بلوچ ، جوشوا. راهنمای زبان برنامه نویسی موثر جاوا. بوستون: آدیسون وسلی ، 2001. چاپ
  • فلاناگان ، دیوید. جاوا به طور خلاصه. سباستوپول: O'Reilly Media ، 1996. چاپ
  • اکل فکر کردن در جاوا. دهلی: پیرسون آموزش هند ، 2006. چاپ
  • "اعتبار تصویر: https://stackoverflow.com/questions/1913098/what-is-the-difference-between-an-interface-and-ab Abstract-class"