رابط در جاوا – جامعه dev

1⃣ منوی پیتزا را تصور کنید
شما به یک مکان پیتزا می روید و یک منو را می بینید. منو وعده چه پیتزایی ارائه می دهند – اما هنوز آنها را نمی سازد.
در رابط در جاوا مانند آن منو است: تعریف می کند چه یک کلاس باید انجام دهد ، اما نه چگونه!
2⃣ قرارداد سرآشپز
منو می گوید:
- “همه پیتزا ها باید پنیر داشته باشند”
- “همه پیتزا ها باید خسته شوند” هر سرآشپز (کلاس) که این منو را دنبال می کند باید این قوانین را برآورده کنید! در جاوا ، ما این را صدا می کنیم “اجرای یک رابط.”
3⃣ منوهای متعدد ، یک سرآشپز!
یک سرآشپز می تواند دنبال کند منوهای متعدد (رابط ها):
- منوی غذای ایتالیایی
- منوی فست فود 🍔 به همین ترتیب ، یک کلاس جاوا می تواند پیاده سازی کند بسیاری از رابط ها یکباره! (برخلاف وراثت ، جایی که فقط می گیرید یکی والدین.)
4⃣ اما … اگر سرآشپز تقلب کند چه می شود؟ 😱
اگر یک سرآشپز می گوید ، “من منوی پیتزا را دنبال می کنم!” اما پنیر اضافه نمی کند … مشکل بزرگ!
جاوا اجازه این کار را نمی دهد – کلاس را مجبور می کند اجرای هر روش در رابط ، یا کد کامپایل نمی شود!
5⃣ دستور العمل های پیش فرض 🍳 (جاوا 8+ جادو!)
اگر برخی از پیتزا ها معمولاً سس گوجه فرنگی دارید ، اما نه همیشه؟
رابط ها اکنون می توانند ارائه دهند روشهای پیش فرض– مانند “دستور العمل استاندارد” که سرآشپزها در صورت تمایل می توانند نادیده بگیرند!
java
interface Pizza {
default void addSauce() { System.out.println("Adding tomato sauce!"); }
}