Java Interface (อินเตอร์เฟส) เป็นชุดของการประกาศวิธีการและเป็นคอลเลกชันของคุณสมบัติวิธี อินเทอร์เฟซมีลักษณะของวิธีการเท่านั้น แต่ไม่มีการใช้วิธีการ ดังนั้นวิธีการเหล่านี้สามารถนำไปใช้โดยคลาสที่แตกต่างกันในสถานที่ต่าง ๆ และการใช้งานเหล่านี้สามารถมีพฤติกรรมที่แตกต่างกัน (ฟังก์ชั่น)
1. ความหมายของอินเทอร์เฟซ:
1. อินเทอร์เฟซ Java โครงสร้างที่มีอยู่ในภาษา Java มีไวยากรณ์และโครงสร้างเฉพาะ
2. คอลเลกชันของคุณสมบัติของวิธีการที่คลาสมีเป็นนามธรรมเชิงตรรกะ
อดีตเรียกว่า "อินเทอร์เฟซ Java" และหลังเรียกว่า "อินเตอร์เฟส"
อินเทอร์เฟซ Java นั้นไม่มีการใช้งานใด ๆ เนื่องจากอินเทอร์เฟซ Java ไม่ได้เกี่ยวข้องกับการปรากฏตัว แต่อธิบายพฤติกรรมสาธารณะเท่านั้นดังนั้นอินเตอร์เฟส Java จึงเป็นนามธรรมมากกว่าคลาสนามธรรม Java
วิธีการของอินเทอร์เฟซ Java สามารถเป็นนามธรรมและสาธารณะเท่านั้น อินเทอร์เฟซ Java ไม่สามารถมีตัวสร้างได้ อินเทอร์เฟซ Java สามารถมีคุณสมบัติสาธารณะคงที่และสุดท้าย
2. ทำไมต้องใช้อินเทอร์เฟซ Java เป็นภาษามรดกเดียว? หากคุณต้องการเพิ่มฟังก์ชั่นใหม่ในคลาสเฉพาะที่มีคลาสแม่ที่มีอยู่ภายใต้หลักการ OCP วิธีแก้ปัญหาคือการเพิ่มคลาสพาเรนต์ในคลาสพาเรนต์ของมันหรือเพิ่มคลาสพาเรนต์ลงในคลาสพาเรนต์ของมันจนกว่าจะย้ายไปด้านบนของโครงสร้างลำดับชั้นของคลาส ด้วยวิธีนี้การออกแบบความสามารถในการแทรกของคลาสที่เฉพาะเจาะจงจะกลายเป็นการปรับเปลี่ยนของคลาสทั้งหมดในลำดับชั้นทั้งหมด
เมื่อมีอินเทอร์เฟซในตัวอย่างข้างต้นไม่จำเป็นต้องรักษาคลาสทั้งหมดในโครงสร้างลำดับชั้นทั้งหมด
3. อินเทอร์เฟซมีความสามารถในการแทรก:
คลาสใด ๆ ในลำดับชั้นสามารถใช้อินเทอร์เฟซซึ่งจะส่งผลกระทบต่อคลาสย่อยทั้งหมดของคลาสนี้ แต่จะไม่ส่งผลกระทบต่อ superclasses ใด ๆ ของคลาสนี้ คลาสนี้จะต้องใช้วิธีการที่ระบุโดยอินเทอร์เฟซนี้และคลาสย่อยของมันสามารถสืบทอดวิธีการเหล่านี้จากคลาสนี้โดยอัตโนมัติและแน่นอนว่าพวกเขายังสามารถเลือกที่จะแทนที่วิธีการเหล่านี้ทั้งหมดหรือบางอย่าง ในเวลานี้คลาสย่อยเหล่านี้สามารถเสียบได้ (และสามารถโหลดได้ด้วยประเภทอินเทอร์เฟซนี้ผ่านและใช้คลาสย่อยทั้งหมด)
อินเทอร์เฟซให้การแก้ไขและการเรียกวิธีการ ขนาดของระบบซอฟต์แวร์ที่ใหญ่ขึ้นยิ่งวงจรชีวิตนานขึ้นเท่านั้น อินเทอร์เฟซช่วยให้มั่นใจได้ถึงความยืดหยุ่นและความสามารถในการปรับขนาดของระบบซอฟต์แวร์และความสามารถในการแก้ไข
มันเป็นเพราะอินเทอร์เฟซที่การสืบทอดเดี่ยว Java มีความเป็นไปได้ของการขยายใหม่ (การแทนที่การสืบทอดหลายครั้ง); 3. พิมพ์ลำดับชั้น Java อินเตอร์เฟส (และคลาสนามธรรม) โดยทั่วไปจะใช้เป็นจุดเริ่มต้นของลำดับชั้นประเภท
หากชั้นเรียนมี supertype ที่สำคัญอยู่แล้วโดยการใช้อินเทอร์เฟซคลาสจะมี supertype เล็กน้อยอีกตัวซึ่งเรียกว่าประเภทไฮบริด
4. การจำแนกประเภทอินเตอร์เฟส Java
1. อินเทอร์เฟซทั่วไป (รวมถึงคำนิยามวิธีการ) ส่วนต่อประสานสาธารณะ ActionListener {Public Abtract Void ActionPerformed (ActionEvent Event);}
2. อินเทอร์เฟซการระบุตัวตน (ไม่มีวิธีการและคำจำกัดความของแอตทริบิวต์) อินเทอร์เฟซการระบุตัวตนเป็นอินเทอร์เฟซที่ไม่มีวิธีการและแอตทริบิวต์ใด ๆ อินเทอร์เฟซการระบุตัวตนไม่มีข้อกำหนดทางความหมายใด ๆ สำหรับคลาสที่ใช้งาน มันบ่งบอกว่าคลาสที่ใช้มันเป็นของประเภทเฉพาะ
อินเทอร์เฟซสาธารณะ serializable {}; 3. อินเทอร์เฟซคงที่หมายถึงการใช้อินเทอร์เฟซ Java เพื่อประกาศค่าคงที่บางอย่างจากนั้นคลาสที่ใช้อินเทอร์เฟซนี้ใช้ค่าคงที่เหล่านี้
ส่วนต่อประสานสาธารณะ appConstants {สาธารณะคงที่ data_source_name = "test"; user_name สุดท้าย user_name = "test"
5. ลักษณะของอินเทอร์เฟซ
1. ตัวแปรสมาชิกในอินเทอร์เฟซ Java เป็นของสาธารณะคงที่และสุดท้ายโดยค่าเริ่มต้น (ทั้งหมดที่สามารถละเว้นได้) และจะต้องแสดงและเริ่มต้นนั่นคือตัวแปรสมาชิกในอินเทอร์เฟซคือค่าคงที่ (แคปคั่นด้วย "_" ระหว่างคำ)
2. วิธีการในอินเทอร์เฟซ Java เป็นแบบสาธารณะและประเภทนามธรรมโดยค่าเริ่มต้น (ทั้งหมดสามารถละเว้นได้) หากไม่มีวิธีการพวกเขาไม่สามารถสร้างอินสแตนซ์ได้
3. อินเตอร์เฟส Java สามารถมีตัวแปรสมาชิกของสาธารณะประเภทคงที่และวิธีการสมาชิกของสาธารณะประเภทนามธรรมเท่านั้น
4. ไม่มีตัวสร้างในอินเทอร์เฟซและไม่สามารถสร้างอินสแตนซ์ได้
5. อินเทอร์เฟซหนึ่งไม่สามารถใช้อินเทอร์เฟซอื่นได้ แต่สามารถสืบทอดอินเทอร์เฟซอื่น ๆ ได้หลายแห่ง
6. อินเทอร์เฟซ Java ต้องใช้วิธีนามธรรมผ่านคลาส
7. เมื่อคลาสใช้อินเทอร์เฟซ Java บางอย่างจะต้องใช้วิธีนามธรรมทั้งหมดในอินเทอร์เฟซมิฉะนั้นคลาสนี้จะต้องประกาศเป็นคลาสนามธรรม
8. ไม่ได้รับอนุญาตให้สร้างอินสแตนซ์ของอินเทอร์เฟซ (อินสแตนซ์) แต่ได้รับอนุญาตให้กำหนดตัวแปรอ้างอิงของประเภทอินเตอร์เฟส ตัวแปรอ้างอิงนี้หมายถึงอินสแตนซ์ของคลาสที่ใช้อินเทอร์เฟซนี้
9. คลาสสามารถสืบทอดคลาสพาเรนต์โดยตรงหนึ่งคลาสเท่านั้น แต่สามารถใช้หลายอินเทอร์เฟซโดยใช้การสืบทอดหลายทางอ้อม
6. ความแตกต่างระหว่างอินเทอร์เฟซ Java และ Java Abstract Classes จุดสนใจของการออกแบบเชิงวัตถุคือสิ่งที่เป็นนามธรรม ทั้งคลาสนามธรรมและอินเทอร์เฟซตั้งอยู่ที่ชั้นบนของแผนผังมรดก
ความคล้ายคลึงกัน:
1. หมายถึงเลเยอร์ที่เป็นนามธรรมของระบบ เมื่อระบบใช้คลาสบนแผนผังมรดกควรพยายามประกาศตัวแปรอ้างอิงเป็นประเภทนามธรรมด้านบนของต้นไม้สืบทอด สิ่งนี้สามารถปรับปรุงการมีเพศสัมพันธ์ระหว่างทั้งสองระบบ 2. ไม่สามารถสร้างอินสแตนซ์ 3. ทั้งสองมีวิธีนามธรรม วิธีการนามธรรมเหล่านี้ใช้เพื่ออธิบายว่าบริการใดที่ระบบสามารถให้ได้ แต่ไม่มีความแตกต่างในร่างกายวิธี:
1. ความแตกต่างที่ยิ่งใหญ่ที่สุดคือคลาสนามธรรม Java สามารถให้การใช้งานบางส่วนของวิธีการบางอย่างในขณะที่อินเตอร์เฟส Java ไม่สามารถ; นี่อาจเป็นข้อได้เปรียบเพียงอย่างเดียวของคลาสนามธรรม Java แต่ข้อได้เปรียบนี้มีประโยชน์มาก
คุณสามารถเพิ่มวิธีคอนกรีตใหม่ในคลาสนามธรรมและคลาสย่อยทั้งหมดจะได้รับวิธีนี้โดยอัตโนมัติ แต่เพิ่มวิธีการใหม่ในอินเทอร์เฟซ Java และคลาสทั้งหมดที่ใช้อินเทอร์เฟซนี้ไม่สามารถรวบรวมได้สำเร็จและคุณต้องเพิ่มการใช้วิธีนี้ด้วยตนเองในแต่ละคลาสที่ใช้อินเทอร์เฟซ
2. การใช้งานคลาสนามธรรมสามารถให้ได้โดยคลาสย่อยนั่นคือการใช้งานสามารถอยู่ในโครงสร้างลำดับชั้นที่สืบทอดได้ที่กำหนดโดยคลาสนามธรรม ดังนั้นประสิทธิภาพของคลาสนามธรรมเป็นเครื่องมือนิยามประเภทจะลดลงอย่างมาก
อินเทอร์เฟซ Java คลาสใดก็ตามที่ใช้วิธีการที่ระบุโดยอินเทอร์เฟซ Java สามารถมีประเภทของอินเทอร์เฟซนี้และคลาสสามารถใช้อินเทอร์เฟซ Java หลายตัวเพื่อให้คลาสนี้มีหลายประเภท
ดังที่เห็นด้านบนอินเทอร์เฟซ Java เป็นเครื่องมือที่เหมาะสำหรับการกำหนดประเภทผสม คลาสผสมบ่งชี้ว่าคลาสไม่เพียง แต่พฤติกรรมของประเภทหลักบางประเภทเท่านั้น แต่ยังรวมถึงพฤติกรรมรองอื่น ๆ
3. การรวมข้อดีของคลาสนามธรรมและอินเทอร์เฟซ Java ในจุด 1 และ 2 รูปแบบการออกแบบคลาสสิกจะออกมา:
งานของการประกาศประเภทยังคงดำเนินการโดยอินเทอร์เฟซ Java แต่ในขณะเดียวกันก็มีการให้คลาสนามธรรม Java และอินเทอร์เฟซนี้ถูกนำมาใช้ คลาสคอนกรีตอื่น ๆ ที่เป็นของประเภทนามธรรมนี้สามารถเลือกที่จะใช้อินเทอร์เฟซ Java นี้หรือสืบทอดคลาสนามธรรมนี้ กล่าวคือในลำดับชั้นอินเตอร์เฟส Java อยู่ที่ด้านบนแล้วตามด้วยคลาสนามธรรม ข้อได้เปรียบที่ใหญ่ที่สุดของทั้งสองนี้สามารถขยายได้สูงสุด โหมดนี้คือ "โหมดการปรับตัวเริ่มต้น"
รูปแบบนี้ใช้ใน Java Language API และทุกอย่างเป็นไปตามข้อกำหนดการตั้งชื่อบางอย่าง: ชื่อนามธรรม + อินเทอร์เฟซ
7. หลักการโดยรวมของการใช้อินเทอร์เฟซและคลาสนามธรรม:
1. ใช้อินเทอร์เฟซเป็นหน้าต่างสำหรับการโต้ตอบระหว่างระบบและโลกภายนอก ยืนจากมุมมองของผู้ใช้ภายนอก (ระบบอื่น) อินเทอร์เฟซสัญญากับผู้ใช้สิ่งที่บริการที่ระบบสามารถให้และจากมุมมองของระบบเองซึ่งให้บริการอินเทอร์เฟซ อินเทอร์เฟซเป็นประเภทนามธรรมระดับสูงสุดในระบบ ผ่านการโต้ตอบของอินเทอร์เฟซระบบการมีเพศสัมพันธ์ A ระหว่างสองระบบสามารถปรับปรุงให้ดีขึ้นเพื่อโต้ตอบผ่านระบบ B ซึ่งหมายความว่าเมื่อระบบ A เข้าถึงระบบ B ตัวแปรอ้างอิงจะประกาศตัวแปรอ้างอิงเป็นประเภทอินเตอร์เฟสในระบบ B ตัวแปรอ้างอิงนี้หมายถึงอินสแตนซ์ของคลาสการใช้งานของอินเทอร์เฟซในระบบ B
อินเทอร์เฟซสาธารณะ B {}
คลาสสาธารณะ C ใช้ b {}
คลาสสาธารณะ A {b a = new C (); -
2. อินเทอร์เฟซ Java นั้นต้องเสถียรมาก เมื่อมีการกำหนดอินเทอร์เฟซ Java แล้วจะไม่ได้รับอนุญาตให้ไปตามที่เกิดขึ้นมิฉะนั้นจะมีผลกระทบต่อผู้ใช้ภายนอกและระบบเอง 3. ใช้คลาสนามธรรมเพื่อปรับแต่งจุดขยายในระบบและคลาสนามธรรมเพื่อให้การใช้งานบางส่วนเสร็จสมบูรณ์ ฟังก์ชั่นบางอย่างจะต้องดำเนินการผ่านคลาสย่อย
บทความข้างต้นมีรายละเอียดเกี่ยวกับแนวคิดการจำแนกและความแตกต่างจากหมวดหมู่นามธรรมของอินเทอร์เฟซ Java เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น