อินเทอร์เฟซเข้า 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 ที่มีวิธีการที่มีชื่อเดียวกัน แต่มีประเภทการส่งคืนต่างกัน
สรุป:
- คลาสที่ใช้อินเทอร์เฟซจำเป็นต้องมีฟังก์ชันการทำงานสำหรับวิธีการที่ประกาศไว้ในอินเทอร์เฟซ
- วิธีการทั้งหมดในอินเทอร์เฟซเป็นแบบสาธารณะและเป็นนามธรรมโดยปริยาย
- อินเทอร์เฟซไม่สามารถสร้างอินสแตนซ์ได้
- การอ้างอิงอินเทอร์เฟซสามารถชี้ไปที่ออบเจ็กต์ของคลาสการใช้งาน
- อินเทอร์เฟซสามารถขยายจากอินเทอร์เฟซเดียวหรือหลายอินเทอร์เฟซได้ คลาสสามารถขยายได้เพียงคลาสเดียว แต่ใช้อินเทอร์เฟซจำนวนเท่าใดก็ได้