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