Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เราสามารถแทนที่วิธีเดียวเท่านั้นในขณะที่ใช้อินเทอร์เฟซ Java ได้หรือไม่


อินเทอร์เฟซใน Java เป็นข้อกำหนดของต้นแบบวิธีการ เมื่อใดก็ตามที่คุณต้องการแนะนำโปรแกรมเมอร์หรือทำสัญญาโดยระบุว่าวิธีการและฟิลด์ของประเภทควรเป็นอย่างไร คุณสามารถกำหนดอินเทอร์เฟซได้

ในการสร้างวัตถุประเภทนี้ คุณต้องใช้อินเทอร์เฟซนี้ จัดเตรียมเนื้อหาสำหรับวิธีนามธรรมทั้งหมดของอินเทอร์เฟซ และรับวัตถุของคลาสการนำไปใช้

ตัวอย่าง

interface Sample {
   void demoMethod1();
   void demoMethod2();
   void demoMethod3();
}
public class InterfaceExample implements Sample {
   public void demoMethod1() {
      System.out.println("This is demo method-1");
   }
   public void demoMethod2() {
      System.out.println("This is demo method-2");
   }
   public void demoMethod3() {
      System.out.println("This is demo method-3");
   }
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.demoMethod1();
      obj.demoMethod1();
      obj.demoMethod3();
   }
}

ผลลัพธ์

This is demo method-1
This is demo method-2
This is demo method-3

ขณะใช้งานอินเทอร์เฟซ จำเป็นต้องแทนที่เมธอด abstract ทั้งหมด หากคุณข้ามการแทนที่เมธอด abstract ใด ๆ ข้อผิดพลาดเวลาคอมไพล์จะถูกสร้างขึ้น

ตัวอย่าง

interface Sample {
   void demoMethod1();
   void demoMethod2();
   void demoMethod3();
}
public class InterfaceExample implements Sample {
   public void demoMethod1() {
      System.out.println("This is demo method-1");
   }
   public void demoMethod2() {
      System.out.println("This is demo method-2");
   }
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.demoMethod1();
      obj.demoMethod2();
   }
}

ผลลัพธ์

InterfaceExample.java:6: error: InterfaceExample is not abstract and does not override abstract method demoMethod3() in Sample
public class InterfaceExample implements Sample{
       ^
1 error

แต่ถ้าคุณต้องการแทนที่วิธีนามธรรมเพียงวิธีเดียว -

คุณสามารถปล่อยให้ วิธีการที่เหลือไม่ได้ดำเนินการ เป็น −

ตัวอย่าง

interface Sample {
   void demoMethod1();
   void demoMethod2();
   void demoMethod3();
}
public class InterfaceExample implements Sample {
   public void demoMethod1() {
      System.out.println("This is demo method-1");
   }
   public void demoMethod2() {
   }
   public void demoMethod3() {
   }
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.demoMethod1();
      obj.demoMethod2();
      obj.demoMethod3();
   }
}

ผลลัพธ์

This is demo method-1

เนื่องจากไม่จำเป็นต้องใช้ int ในการปรับใช้เมธอดเริ่มต้นของอินเทอร์เฟซ คุณสามารถประกาศเมธอดที่เหลือได้ default เป็น −

ตัวอย่าง

interface Sample {
   void demoMethod1();
   default void demoMethod2() {
      System.out.println("Default demo method 2");
   }
   default void demoMethod3() {
      System.out.println("Default demo method 3");
   }
}
public class InterfaceExample implements Sample {
   public void demoMethod1() {
      System.out.println("This is demo method-1");
   }
   public static void main(String args[]) {
      InterfaceExample obj = new InterfaceExample();
      obj.demoMethod1();
      obj.demoMethod2();
      obj.demoMethod3();
   }
}

ผลลัพธ์

This is demo method-1
Default demo method 2
Default demo method 3