1. ทำไมต้องใช้อินเทอร์เฟซ
หากมีข้อกำหนด: ต้องใช้ฟังก์ชั่นของประตูต่อต้านการโจรกรรม ประตูมีฟังก์ชั่นของ "เปิด" และ "ปิด" และล็อคมีฟังก์ชั่นของ "ล็อค" และ "การเปิด"
การวิเคราะห์: ก่อนอื่นประตูต่อต้านการโจรกรรมเป็นประตู ประตูมีฟังก์ชั่นการเปิดและปิดประตูและยังมีล็อค ล็อคมีการปลดล็อคและล็อค ตามแนวคิดของการเขียนโปรแกรมเชิงวัตถุเราจะพิจารณาทั้งประตูและล็อคเป็นชั้นเรียนและมีอยู่แยกต่างหาก อย่างไรก็ตามประตูต่อต้านการโจรกรรมไม่สามารถสืบทอดได้จากประตูและล็อคตัวเอง ประตูต่อต้านการโจรกรรมไม่ใช่ล็อคซึ่งไม่สอดคล้องกับความสัมพันธ์ของการสืบทอด การสืบทอดเดี่ยวได้รับการสนับสนุนใน Java แล้วเราจะแก้ปัญหานี้ได้อย่างไร? ในเวลานี้เราต้องใช้อินเทอร์เฟซ
2. อินเทอร์เฟซคืออะไร
ในซอฟต์แวร์อินเทอร์เฟซเป็นข้อกำหนดและมาตรฐาน พวกเขาสามารถ จำกัด พฤติกรรมของชั้นเรียนและเป็นคอลเลกชันของคุณสมบัติบางวิธี อย่างไรก็ตามไม่มีการใช้วิธีการ อินเทอร์เฟซสามารถถือได้ว่าเป็นคลาสนามธรรมพิเศษ แต่พวกเขาใช้วิธีการที่แตกต่างอย่างสิ้นเชิงจากคลาสนามธรรมเพื่อเป็นตัวแทน แนวคิดการออกแบบของทั้งสองก็แตกต่างกันเช่นกัน คลาสนามธรรมนั้นเอื้อต่อการใช้รหัสซ้ำและอินเทอร์เฟซเอื้อต่อการขยายรหัสและการบำรุงรักษา
3. ความแตกต่างระหว่างคลาสนามธรรมและอินเทอร์เฟซ:
คลาส 01abstract สามารถให้รายละเอียดการใช้งานของวิธีการสมาชิกในขณะที่มีเพียงวิธีนามธรรมสาธารณะเท่านั้นที่สามารถมีอยู่ในอินเทอร์เฟซ
02. ตัวแปรสมาชิกในคลาสนามธรรมอาจเป็นประเภทต่าง ๆ ในขณะที่ตัวแปรสมาชิกในอินเทอร์เฟซสามารถเป็นประเภทสุดท้ายของสาธารณะเท่านั้น
03. อินเทอร์เฟซไม่สามารถมีบล็อกรหัสคงที่และวิธีการคงที่ในขณะที่คลาสนามธรรมสามารถมีบล็อกรหัสคงที่และวิธีการคงที่;
04. คลาสสามารถสืบทอดคลาสนามธรรมหนึ่งคลาสเท่านั้นในขณะที่คลาสสามารถใช้หลายอินเตอร์เฟส
4. วิธีกำหนดอินเทอร์เฟซ
ก่อนอื่นให้ดูที่ไวยากรณ์:
[Modifier] ชื่ออินเตอร์เฟสขยายอินเทอร์เฟซหลัก 1, อินเทอร์เฟซพาเรนต์ 2, ...
-
// คำจำกัดความคงที่
// คำจำกัดความวิธีการ
-
ใช้ไวยากรณ์อินเตอร์เฟสในคลาส:
คลาสคลาสชื่อคลาสชื่อคลาสการใช้อินเทอร์เฟซ 1, อินเตอร์เฟส 2, ...
-
// สมาชิกชั้นเรียน
-
5. การกำหนดจุดอินเทอร์เฟซ
01. กฎการตั้งชื่อของอินเทอร์เฟซนั้นเหมือนกับของคลาส หากตัวดัดแปลงเป็นสาธารณะอินเทอร์เฟซสามารถมองเห็นได้ตลอดทั้งโครงการ หากตัวดัดแปลงถูกละเว้นอินเทอร์เฟซจะมองเห็นได้ในแพ็คเกจปัจจุบันเท่านั้น
02. ค่าคงที่สามารถกำหนดได้ในอินเทอร์เฟซ แต่ไม่สามารถกำหนดตัวแปรได้ หากคุณกำหนดแอตทริบิวต์ในอินเทอร์เฟซจากนั้นผ่านการสลายตัวคุณจะเห็นว่ามันจะแก้ไขโดยอัตโนมัติด้วยสาธารณะคงที่สุดท้าย แอตทริบิวต์ในอินเทอร์เฟซเป็นค่าคงที่สแตติกทั่วโลกทั้งหมดและค่าคงที่ในอินเตอร์เฟสจะต้องระบุค่าเริ่มต้นเมื่อกำหนด
03. วิธีการทั้งหมดในอินเทอร์เฟซเป็นวิธีนามธรรมและวิธีการในอินเตอร์เฟสจะได้รับการแก้ไขโดยอัตโนมัติด้วยนามธรรมสาธารณะนั่นคือมีเพียงวิธีนามธรรมระดับโลกในอินเทอร์เฟซ
04. อินเทอร์เฟซไม่สามารถสร้างอินสแตนซ์และไม่สามารถมีโครงสร้างในอินเทอร์เฟซ
05 ความสัมพันธ์ในการสืบทอดสามารถรับรู้ได้ผ่านการขยายระหว่างอินเทอร์เฟซ อินเทอร์เฟซหนึ่งสามารถสืบทอดหลายอินเทอร์เฟซ แต่อินเทอร์เฟซไม่สามารถสืบทอดคลาสได้
06. คลาสการใช้งานอินเตอร์เฟสจะต้องใช้วิธีการทั้งหมดของอินเทอร์เฟซมิฉะนั้นจะต้องกำหนดเป็นคลาสนามธรรม