interface
رابط (Interface) در جاوا یک «نوع کلاس ویژه» است. این نوع فقط امضای متدها را نگه می دهد. یعنی بدنه ندارد. برای استفاده، یک کلاس باید آن را پیاده سازی کند.
تعریف interface در جاوا
interface مجموعه ای از متدهای بدون بدنه است. برای دسترسی به این متدها، یک کلاس باید با کلیدواژه implements آن را پیاده سازی کند. سپس بدنه متدها داخل همان کلاس نوشته می شود.
interface Animal {
public void animalSound();
public void sleep();
}
class Pig implements Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
public void sleep() {
System.out.println("Zzz");
}
}
class MyMainClass {
public static void main(String[] args) {
Pig myPig = new Pig();
myPig.animalSound();
myPig.sleep();
}
}
گام های عملی
- یک interface بساز و متدها را تعریف کن.
- یک کلاس بساز و از implements استفاده کن.
- متدها را در کلاس پیاده سازی و اجرا کن.
نکات مهم interface
- interface شیء ایجاد نمی کند.
- متدهای interface بدنه ندارند.
- باید همه متدها را پیاده سازی کنی.
- متدها پیش فرض abstract و public هستند.
- ویژگی ها پیش فرض public و static و final هستند.
- interface سازنده ندارد.
پیاده سازی چند interface باهم
جاوا چندوراثت کلاسی ندارد؛ اما یک کلاس می تواند چند interface را پیاده سازی کند. نام ها را با کاما جدا کن.
interface FirstInterface {
public void myMethod();
}
interface SecondInterface {
public void myOtherMethod();
}
class DemoClass implements FirstInterface, SecondInterface {
public void myMethod() {
System.out.println("Some text..");
}
public void myOtherMethod() {
System.out.println("Some other text...");
}
}
class MyMainClass {
public static void main(String[] args) {
DemoClass myObj = new DemoClass();
myObj.myMethod();
myObj.myOtherMethod();
}
}
نکته: برای بررسی نوع شیء، می توانی صفحه instanceof را هم ببینی.
هشدار: اگر حتی یک متد را پیاده سازی نکنی، کدت خطا می دهد.
جمع بندی سریع
- interface فقط قرارداد متدهاست.
- کلاس با implements آن را اجرا می کند.
- می توانی چند interface را پیاده سازی کنی.
- interface سازنده و شیء ندارد.