X

آموزش مقدماتی جاوا | Interface

Interface ها

یک روش دیگر برای تحقق مدل چکیدگی در جاوا، استفاده از interface هاست.

یک interface مشابه همان کلاس abstract است که فقط متد های با بدنه ی خالی در آن استفاده می شود:

// interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void run(); // interface method (does not have a body)
}

برای دسترسی به متدهای یک interface، باید یک کلاس دیگر داشته باشیم که به صورتی شبیه به وراثت از این interface به ارث ببرد. برای ارث بری ار interface ها به جای کلمه extends از implements استفاده می کنیم. بدنه ی متد های interface در این کلاس جدید ساخته می شوند. 

// Interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void sleep(); // interface method (does not have a body)
}

// Pig "implements" the Animal interface
class Pig implements Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
  public void sleep() {
    // The body of sleep() is provided here
    System.out.println("Zzz");
  }
}

class MyMainClass {
  public static void main(String[] args) {
    Pig myPig = new Pig();  // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

 

نکاتی در مورد interface ها:

  • همانند کلاس های abstract، از روی interface ها نیز نمی توان اشیائی ساخت. در مثال بالا، در کلاس MyMainClass نمی توان شیئی از کلاس Animal ساخت.
  • متد های درون interface بدنه ای ندارند و بدنه ی آنها در کلاس implement ساخته می شود.
  • در ارث بری از interface ها، همه ی متد ها باید دوباره تعریف شوند.
  • متد های interface یه صورت پیش فرض abstract و public هستند
  • ویژگی های interface به صورت پیش فرض static، public و final هستند
  • از آنجایی که نمی توان از روی interface ها شیئی ساخت، در نتیجه یک interface نمی تواند متد constructor داشته باشد

 

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2