در این پست میخوام آموزش کار با اینترفیس (Interface) در جاوا رو بدم خدمتتون. اینترفیس (Interface) یک نوع مرجع میباشد و مجموعهای از متدهای abstract هستش. وقتی که کلاس، اینترفیس (Interface) را implements میکند، در واقع توافق میکند که تمامی دستورات داخل آن اینترفیس (Interface) رو در خود پیادهسازی کند.
برای درک بهتر در زیر من یک اینترفیس تعریف کردم:
package Interface; public interface ITelephone { void powerOn(); void dial(int phoneNumber); void answer(); boolean callPhone(int phoneNumber); boolean isRinging(); }
حالا کلاسش رو براش مینویسم:
package Interface; public class DeskPhone implements ITelephone { private int myNumber; private boolean isRinging; public DeskPhone(int myNumber) { this.myNumber = myNumber; } @Override public void powerOn() { System.out.println("No Action Needed, Desk phone does not have a power btn"); } @Override public void dial(int phoneNumber) { System.out.println("Rinnnnggggg!!! Phone Number="+phoneNumber+ ", Desktop Phone az Ringing"); } @Override public void answer() { if(isRinging){ System.out.println("Answering the desk phone"); isRinging = false; } } @Override public boolean callPhone(int phoneNumber) { if(phoneNumber == myNumber){ isRinging = true; System.out.println("Ring Ring"); }else{ isRinging = false; } return isRinging; } @Override public boolean isRinging() { return isRinging; } }
حالا Main به این صورت میشه:
import Interface.DeskPhone; import Interface.ITelephone; import java.util.Arrays; public class Main { public static void main(String[] args) { ITelephone SoroushPhone; SoroushPhone = new DeskPhone(1234567); SoroushPhone.powerOn(); SoroushPhone.callPhone(1213123123); SoroushPhone.answer(); } }
اگه توی مثال دقت کنید، من از اینترفیس شی ساختم. دقت بشه در صورتی که اینجوری شی بسازیم فقط به متدهایی از کلاس دسترسی داریم که داخل اون اینترفیس قرار داره و در صورتی که متد دیگهای مخصوص اون کلاس تعریف کرده باشیم، دسترسی بهش وجود نداره.
دیدگاهتان را بنویسید