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

อินเทอร์เฟซใน Java

อินเทอร์เฟซเป็นชนิดอ้างอิง (reference type) ใน Java มันคล้ายกับคลาส มันเป็นชุดของเมธอด abstract คลาสนำอินเทอร์เฟซมาใช้งาน (implements) โดยการสืบทอดเมธอด abstract ของอินเทอร์เฟซ

นอกจากเมธอด abstract แล้ว อินเทอร์เฟซอาจประกอบด้วยค่าคงที่ เมธอด default เมธอด static และชนิดซ้อน (nested types) ตัวการนำไปใช้งานของเมธอดมีอยู่เฉพาะสำหรับเมธอด default และ static เท่านั้น

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

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

อินเทอร์เฟซคล้ายกับคลาสในลักษณะต่อไปนี้:

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

อย่างไรก็ตาม อินเทอร์เฟซแตกต่างจากคลาสในหลายลักษณะ รวมถึง:

  • คุณไม่สามารถสร้างอินสแตนซ์ของอินเทอร์เฟซได้
  • อินเทอร์เฟซไม่มีคอนสตรัคเตอร์ใดๆ
  • เมธอดทั้งหมดในอินเทอร์เฟซเป็น abstract
  • อินเทอร์เฟซไม่สามารถมีฟิลด์อินสแตนซ์ได้ ฟิลด์ที่ปรากฏในอินเทอร์เฟซต้องประกาศเป็น static และ final ทั้งคู่
  • อินเทอร์เฟซไม่ถูกขยายโดยคลาส มันถูกนำไปใช้งาน (implemented) โดยคลาส
  • อินเทอร์เฟซสามารถขยายอินเทอร์เฟซหลายอินเทอร์เฟซได้

การประกาศอินเทอร์เฟซ

คีย์เวิร์ด interface ใช้สำหรับประกาศอินเทอร์เฟซ นี่คือตัวอย่างง่ายๆ สำหรับการประกาศอินเทอร์เฟซ:

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างของอินเทอร์เฟซ:

/* File name : NameOfInterface.java */ import java.lang.*; // Any number of import statements public interface NameOfInterface {    // Any number of final, static fields //    Any number of abstract method declarations }