اینترفیس (Interface)
اینترفیس (Interface) راه دیگرِ انتزاع است. اینترفیس فقط قرارداد می دهد، نه اجرای واقعی. مثل قوانین بازی که می گویند چه کاری مجاز است. سپس کلاس ها آن قوانین را اجرا می کنند.
اینترفیس در جاوا چیست؟
اینترفیس مجموعه ای از متدهای بدون بدن است. یعنی فقط اسم و ورودی دارند. کلاس ها بعداً بدن متدها را می نویسند. بنابراین کد مرتب تر و قابل تعمیرتر می شود.
// interface
interface Animal {
public void animalSound();
public void run();
}
پیاده سازی اینترفیس با implements
برای استفاده، کلاس باید اینترفیس را implements کند. سپس همه متدهای آن را پیاده سازی کند. مثل انجام تکالیف اجباری مدرسه.
// Interface
interface Animal {
public void animalSound();
public void sleep();
}
// Pig "implements" the Animal interface
class Pig implements Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
public void sleep() {
System.out.println("Zzz");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig();
myPig.animalSound();
myPig.sleep();
}
}
چند اینترفیس همزمان
جاوا چندارثی کلاس را ندارد. اما کلاس می تواند چند اینترفیس را همزمان پیاده سازی کند. فقط نام ها را با کاما جدا کن.
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 Main {
public static void main(String[] args) {
DemoClass myObj = new DemoClass();
myObj.myMethod();
myObj.myOtherMethod();
}
}
نکات مهم اینترفیس
- ایجاد شیء از اینترفیس ممکن نیست.
- بدنِ متدها را کلاس پیاده ساز می نویسد.
- باید همه متدهای اینترفیس را override کنی.
- متدهای اینترفیس ذاتاً abstract و public هستند.
- فیلدهای اینترفیس public و static و final هستند.
گام های عملی
- یک اینترفیس با چند متد بدون بدن بساز.
- کلاسی ایجاد کن و آن را implements کن.
- همه متدها را پیاده سازی کن و اجرا کن.
نکته: برای انتزاع بیشتر، صفحه انتزاع را ببین. همچنین لینک اینترفیس همیشه راهنمای همین صفحه است.
جمع بندی سریع
- اینترفیس فقط قرارداد متدها را می دهد.
- کلاس ها اجرا را می نویسند.
- می توان چند اینترفیس را باهم داشت.
- اینترفیس ها شیء نمی سازند.