อินเทอร์เฟซเข้า Java พร้อมตัวอย่าง
อินเทอร์เฟซคืออะไร Java?
An อินเทอร์เฟซเข้า Java ภาษาโปรแกรมถูกนิยามว่าเป็นสิ่งที่เป็นนามธรรมtracชนิดข้อมูล t ใช้เพื่อระบุพฤติกรรมของคลาส A Java อินเทอร์เฟซประกอบด้วยค่าคงที่แบบสแตติกและค่าสัมบูรณ์tracเมธอด t คลาสหนึ่งสามารถใช้งานอินเทอร์เฟซได้หลายตัว ใน Javaอินเทอร์เฟซถูกประกาศโดยใช้คีย์เวิร์ด `interface` เมธอดทั้งหมดในอินเทอร์เฟซจะเป็นแบบสาธารณะและแบบสัมบูรณ์โดยปริยายtract.
ไวยากรณ์สำหรับการประกาศอินเทอร์เฟซ
หากต้องการใช้อินเทอร์เฟซในชั้นเรียนของคุณ ให้เพิ่มคำหลัก “นำไปใช้” ต่อท้ายชื่อชั้นเรียนของคุณ ตามด้วยชื่ออินเทอร์เฟซ
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 อินเทอร์เฟซที่ใช้งานนั้นสมบูรณ์แบบ 100%tracคลาส t และมีเท่านั้น เอบีเอสtracวิธีการ t
- คลาสสามารถใช้อินเทอร์เฟซจำนวนเท่าใดก็ได้
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 และ Abs เมื่อใดtracชั้นเรียน t?
- ใช้กล้ามเนื้อหน้าท้องtracใช้คลาส t เมื่อจำเป็นต้องกำหนดเทมเพลตสำหรับกลุ่มของคลาสย่อย
- ใช้อินเทอร์เฟซเมื่อจำเป็นต้องกำหนดบทบาทสำหรับคลาสอื่น โดยไม่คำนึงถึงแผนผังการสืบทอดของคลาสเหล่านี้
ต้องรู้ข้อเท็จจริงเกี่ยวกับอินเทอร์เฟซ
- A Java คลาสสามารถนำไปใช้ได้หลายอย่าง Java อินเทอร์เฟซ จำเป็นที่คลาสจะต้องใช้วิธีการทั้งหมดที่ประกาศไว้ในอินเทอร์เฟซ
- คลาสควรเขียนทับค่า abs ทั้งหมดtracเมธอด t ที่ประกาศไว้ในอินเทอร์เฟซ
- อินเทอร์เฟซช่วยให้สามารถส่งข้อความไปยังวัตถุได้โดยไม่ต้องคำนึงถึงคลาสนั้น
- คลาสจำเป็นต้องมีฟังก์ชันการทำงานสำหรับวิธีการที่ประกาศไว้ในอินเทอร์เฟซ
- เมธอดทั้งหมดในอินเทอร์เฟซนั้นเป็นแบบสาธารณะและแบบสัมบูรณ์โดยปริยายtract
- อินเทอร์เฟซไม่สามารถสร้างอินสแตนซ์ได้
- การอ้างอิงอินเทอร์เฟซสามารถชี้ไปที่ออบเจ็กต์ของคลาสการใช้งาน
- อินเทอร์เฟซสามารถขยายจากอินเทอร์เฟซเดียวหรือหลายอินเทอร์เฟซได้ คลาสสามารถขยายได้เพียงคลาสเดียว แต่ใช้อินเทอร์เฟซจำนวนเท่าใดก็ได้
- อินเทอร์เฟซไม่สามารถใช้อินเทอร์เฟซอื่นได้ จะต้องขยายอินเทอร์เฟซอื่นหากจำเป็น
- อินเทอร์เฟซที่ประกาศภายในอินเทอร์เฟซอื่นเรียกว่าอินเทอร์เฟซแบบซ้อน
- เมื่อถึงเวลาประกาศ ตัวแปรอินเทอร์เฟซจะต้องถูกกำหนดค่าเริ่มต้น มิฉะนั้น คอมไพเลอร์จะแสดงข้อผิดพลาด
- คลาสไม่สามารถใช้สองอินเทอร์เฟซใน java ที่มีวิธีการที่มีชื่อเดียวกัน แต่มีประเภทการส่งคืนต่างกัน
สรุป:
- คลาสที่ใช้อินเทอร์เฟซจำเป็นต้องมีฟังก์ชันการทำงานสำหรับวิธีการที่ประกาศไว้ในอินเทอร์เฟซ
- เมธอดทั้งหมดในอินเทอร์เฟซนั้นเป็นแบบสาธารณะและแบบสัมบูรณ์โดยปริยายtract
- อินเทอร์เฟซไม่สามารถสร้างอินสแตนซ์ได้
- การอ้างอิงอินเทอร์เฟซสามารถชี้ไปที่ออบเจ็กต์ของคลาสการใช้งาน
- อินเทอร์เฟซสามารถขยายจากอินเทอร์เฟซเดียวหรือหลายอินเทอร์เฟซได้ คลาสสามารถขยายได้เพียงคลาสเดียว แต่ใช้อินเทอร์เฟซจำนวนเท่าใดก็ได้




