อินเทอร์เฟซเข้า Java พร้อมตัวอย่าง

อินเทอร์เฟซคืออะไร Java?

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

ไวยากรณ์สำหรับการประกาศอินเทอร์เฟซ

หากต้องการใช้อินเทอร์เฟซในชั้นเรียนของคุณ ให้เพิ่มคำหลัก “นำไปใช้” ต่อท้ายชื่อชั้นเรียนของคุณ ตามด้วยชื่ออินเทอร์เฟซ

interface {
//methods
}

ตัวอย่างการใช้งานอินเทอร์เฟซ

ตอนนี้เรามาทำความเข้าใจเกี่ยวกับอินเทอร์เฟซใน Java ด้วยตัวอย่าง:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้

เหตุใดจึงต้องมีอินเทอร์เฟซ?

เพื่อให้เข้าใจถึงการใช้งานอินเทอร์เฟสใน Java ดีกว่ามาดูกัน Java ตัวอย่างอินเทอร์เฟซ คลาส “Media Player” มีคลาสย่อยสองคลาส: เครื่องเล่นซีดีและเครื่องเล่นดีวีดี แต่ละอันมีการใช้งานอินเทอร์เฟซที่เป็นเอกลักษณ์ Java วิธีการเล่นดนตรี

เหตุใดจึงต้องมีอินเทอร์เฟซ

“คอมโบไดรฟ์” อีกคลาสหนึ่งสืบทอดทั้งซีดีและดีวีดี (ดูภาพด้านล่าง) ควรสืบทอดวิธีการเล่นแบบใด? นี่อาจทำให้เกิดปัญหาการออกแบบที่ร้ายแรง และด้วยเหตุนี้ Java ไม่อนุญาตให้มีหลายรายการ มรดก.

เหตุใดจึงต้องมีอินเทอร์เฟซ

ตอนนี้เรามาดูอีกตัวอย่างหนึ่งของ Dog

สมมติว่าคุณมีข้อกำหนดที่คลาส "สุนัข" สืบทอดคลาส "สัตว์" และ "สัตว์เลี้ยง" (ดูภาพด้านล่าง) แต่คุณไม่สามารถขยายสองคลาสเข้าไปได้ Java- แล้วคุณจะทำอย่างไร? วิธีแก้ไขคืออินเทอร์เฟซ

เหตุใดจึงต้องมีอินเทอร์เฟซ

หนังสือกฎสำหรับอินเทอร์เฟซบอกว่า

  • A Java อินเทอร์เฟซ Implement เป็นคลาสนามธรรม 100% และมีเท่านั้น วิธีการที่เป็นนามธรรม
  • คลาสสามารถใช้อินเทอร์เฟซจำนวนเท่าใดก็ได้

Class Dog สามารถขยายไปถึงคลาส "Animal" และใช้อินเทอร์เฟซเป็น "Pet"

เหตุใดจึงต้องมีอินเทอร์เฟซ

Java ตัวอย่างอินเทอร์เฟซ:

มาทำความเข้าใจกับโปรแกรมอินเตอร์เฟสด้านล่างกัน Java:

ขั้นตอน 1) คัดลอกโค้ดต่อไปนี้ลงในโปรแกรมแก้ไข

interface Pet{
  public void test();
}
class Dog implements Pet{
   public void test(){
     System.out.println("Interface Method Implemented");
  }
   public static void main(String args[]){
     Pet p = new Dog();
     p.test();
  }
}

ขั้นตอน 2) บันทึก คอมไพล์ และรันโค้ด สังเกตเอาต์พุตของอินเทอร์เฟซใน Java โครงการ.

ความแตกต่างระหว่างคลาสและอินเทอร์เฟซ

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

เมื่อใดจึงควรใช้ Interface และ Abstract Class

  • ใช้คลาสนามธรรมเมื่อจำเป็นต้องกำหนดเทมเพลตสำหรับกลุ่มของคลาสย่อย
  • ใช้อินเทอร์เฟซเมื่อจำเป็นต้องกำหนดบทบาทสำหรับคลาสอื่น โดยไม่คำนึงถึงแผนผังการสืบทอดของคลาสเหล่านี้

ต้องรู้ข้อเท็จจริงเกี่ยวกับอินเทอร์เฟซ

  • A Java คลาสสามารถนำไปใช้ได้หลายอย่าง Java อินเทอร์เฟซ จำเป็นที่คลาสจะต้องใช้วิธีการทั้งหมดที่ประกาศไว้ในอินเทอร์เฟซ
  • คลาสควรแทนที่วิธีนามธรรมทั้งหมดที่ประกาศในอินเทอร์เฟซ
  • อินเทอร์เฟซช่วยให้สามารถส่งข้อความไปยังวัตถุได้โดยไม่ต้องคำนึงถึงคลาสนั้น
  • คลาสจำเป็นต้องมีฟังก์ชันการทำงานสำหรับวิธีการที่ประกาศไว้ในอินเทอร์เฟซ
  • วิธีการทั้งหมดในอินเทอร์เฟซเป็นแบบสาธารณะและเป็นนามธรรมโดยปริยาย
  • อินเทอร์เฟซไม่สามารถสร้างอินสแตนซ์ได้
  • การอ้างอิงอินเทอร์เฟซสามารถชี้ไปที่ออบเจ็กต์ของคลาสการใช้งาน
  • อินเทอร์เฟซสามารถขยายจากอินเทอร์เฟซเดียวหรือหลายอินเทอร์เฟซได้ คลาสสามารถขยายได้เพียงคลาสเดียว แต่ใช้อินเทอร์เฟซจำนวนเท่าใดก็ได้
  • อินเทอร์เฟซไม่สามารถใช้อินเทอร์เฟซอื่นได้ จะต้องขยายอินเทอร์เฟซอื่นหากจำเป็น
  • อินเทอร์เฟซที่ประกาศภายในอินเทอร์เฟซอื่นเรียกว่าอินเทอร์เฟซแบบซ้อน
  • เมื่อถึงเวลาประกาศ ตัวแปรอินเทอร์เฟซจะต้องถูกกำหนดค่าเริ่มต้น มิฉะนั้น คอมไพเลอร์จะแสดงข้อผิดพลาด
  • คลาสไม่สามารถใช้สองอินเทอร์เฟซใน java ที่มีวิธีการที่มีชื่อเดียวกัน แต่มีประเภทการส่งคืนต่างกัน

สรุป:

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