แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่าง Class และ Interface ใน Java

คลาสและส่วนต่อประสานทั้งสองถูกใช้เพื่อสร้างประเภทการอ้างอิงใหม่ คลาสคือชุดของเขตข้อมูลและวิธีการที่ทำงานบนเขตข้อมูล อินเทอร์เฟซมีวิธีนามธรรมที่สมบูรณ์เช่นวิธีการที่ไม่มีใคร อินเทอร์เฟซคล้ายกับคลาส syntactically แต่มีความแตกต่างที่สำคัญระหว่างคลาสและอินเทอร์เฟซที่เป็นคลาสที่สามารถอินสแตนซ์ได้ ดังนั้นให้เราเรียนรู้ความแตกต่างระหว่างคลาสและอินเทอร์เฟซด้วยความช่วยเหลือของแผนภูมิเปรียบเทียบที่แสดงด้านล่าง

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบชั้นอินเตอร์เฟซ
ขั้นพื้นฐานคลาสถูกสร้างเป็นอินสแตนซ์เพื่อสร้างวัตถุอินเตอร์เฟสไม่สามารถสร้างอินสแตนซ์ได้เนื่องจากวิธีการไม่สามารถดำเนินการใด ๆ กับการเรียกใช้
คำหลักชั้นอินเตอร์เฟซ
ตัวระบุการเข้าถึงสมาชิกของคลาสสามารถเป็นส่วนตัวเป็นสาธารณะหรือได้รับการคุ้มครองสมาชิกของอินเทอร์เฟซเปิดเผยต่อสาธารณะเสมอ
วิธีการมีการกำหนดวิธีการเรียนเพื่อดำเนินการเฉพาะวิธีการในส่วนต่อประสานนั้นเป็นนามธรรมล้วนๆ
Implement / ขยายคลาสสามารถใช้อินเตอร์เฟสจำนวนเท่าใดก็ได้และสามารถขยายคลาสได้เพียงคลาสเดียวเท่านั้นอินเทอร์เฟซสามารถขยายหลายอินเทอร์เฟซ แต่ไม่สามารถใช้อินเทอร์เฟซใด ๆ
นวกรรมิกชั้นสามารถมีตัวสร้างเพื่อเริ่มต้นตัวแปรอินเทอร์เฟซไม่สามารถมีคอนสตรัคเตอร์ได้เนื่องจากแทบไม่มีตัวแปรใด ๆ ในการเริ่มต้น

คำจำกัดความของ Class

คลาสเป็นส่วนที่สำคัญที่สุดของการเขียนโปรแกรม Java โดยไม่มีคลาสคุณไม่สามารถใช้โปรแกรม Java ได้ ชั้นสร้างประเภทการอ้างอิงและประเภทการอ้างอิงเหล่านี้จะใช้ในการสร้างวัตถุ คลาสมีลายเซ็นและเนื้อความ ลายเซ็นของคลาสมีชื่อและข้อมูลของคลาสที่บอกว่าคลาสนั้นสืบทอดคลาสอื่นหรือไม่ เนื้อความของคลาสมีเขตข้อมูลและวิธีการที่ทำงานบนเขตข้อมูลเหล่านั้น คลาสถูกสร้างขึ้นโดยใช้ คลาส คำหลัก ให้เราดูวิธีประกาศชั้นเรียน

 คลาส class_name {/ * ฟิลด์ ... วิธีการ * /} 

เมื่อคลาสนั้นสร้างอินสแตนซ์ของแต่ละวัตถุที่สร้างขึ้นจะมีสำเนาของเขตข้อมูลและวิธีการต่างๆ เขตข้อมูลและสมาชิกที่ประกาศภายในชั้นเรียนอาจเป็นแบบคงที่หรือไม่คงที่ ค่าสมาชิกคงเป็นค่าคงที่สำหรับแต่ละวัตถุในขณะที่สมาชิกไม่คงที่จะเริ่มต้นโดยแต่ละวัตถุแตกต่างกันตามความต้องการ

สมาชิกของคลาสมีตัวระบุการเข้าถึงที่ตัดสินใจการมองเห็นและการเข้าถึงของสมาชิกกับผู้ใช้หรือกับคลาสย่อย ตัวระบุการเข้าถึงเป็นสาธารณะส่วนตัวและได้รับการคุ้มครอง คลาสสามารถสืบทอดโดยคลาสอื่นโดยใช้ตัวระบุการเข้าถึงซึ่งจะตัดสินการมองเห็นของสมาชิกของซูเปอร์คลาส (คลาสที่สืบทอด) ในคลาสย่อย (คลาสที่สืบทอด) ดังนั้นคลาสจะตอบสนองแนวคิดของการซ่อนข้อมูลและการห่อหุ้มในการเขียนโปรแกรม Object Oriented

นิยามของอินเตอร์เฟส

อินเตอร์เฟสยังเป็นหนึ่งในประเภทการอ้างอิงที่กำหนดไว้ใน Java ความสำคัญของอินเทอร์เฟซคือใน Java คลาสสามารถสืบทอดคลาสเดียวเท่านั้น เพื่อหลีกเลี่ยงข้อ จำกัด นี้ผู้ออกแบบของ Java ได้แนะนำแนวคิดของอินเตอร์เฟส อินเทอร์เฟซคล้ายกับคลาส syntactically แต่มันไม่มีในการประกาศฟิลด์และวิธีการภายในอินเทอร์เฟซไม่มีการใช้งานใด ๆ อินเทอร์เฟซถูกประกาศโดยใช้ อินเทอร์เฟซ คำสำคัญ ให้เราดูการประกาศของอินเทอร์เฟซ

 อินเตอร์เฟส interface_name {type var_name = value; พิมพ์ method1 (รายการพารามิเตอร์); พิมพ์ method2 (รายการพารามิเตอร์); . . } 

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

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

ความแตกต่างที่สำคัญระหว่างคลาสและอินเตอร์เฟสใน Java

  1. ชั้นสามารถสร้างอินสแตนซ์โดยการสร้างวัตถุ อินเทอร์เฟซจะไม่อินสแตนซ์เป็นวิธีการที่ประกาศภายในอินเทอร์เฟซเป็นนามธรรมและไม่ดำเนินการใด ๆ ดังนั้นจึงไม่มีการใช้อินสแตนซ์ของอินเทอร์เฟซใด ๆ
  2. มีการประกาศคลาสโดยใช้คลาสคำหลัก ในทำนองเดียวกันอินเทอร์เฟซถูกสร้างขึ้นโดยใช้อินเทอร์เฟซคำสำคัญ
  3. สมาชิกของคลาสสามารถมีตัวระบุการเข้าถึงเช่นสาธารณะส่วนตัวป้องกัน แต่สมาชิกของอินเทอร์เฟซมักเป็นสาธารณะเนื่องจากพวกเขาจะต้องเข้าถึงได้โดยชั้นเรียนดำเนินการพวกเขา
  4. มีการกำหนดวิธีการภายในคลาสเพื่อดำเนินการกับฟิลด์ที่ประกาศในคลาส เนื่องจากอินเตอร์เฟสขาดการประกาศฟิลด์วิธีการภายในอินเทอร์เฟซจึงเป็นนามธรรมล้วนๆ
  5. คลาสสามารถใช้อินเตอร์เฟสจำนวนเท่าใดก็ได้ แต่สามารถขยายคลาสซุปเปอร์เพียงหนึ่งคลาส อินเทอร์เฟซสามารถขยายจำนวนของอินเทอร์เฟซใด ๆ แต่ไม่สามารถใช้อินเทอร์เฟซใด ๆ
  6. คลาสมีคอนสตรัคเตอร์ที่กำหนดไว้ภายในเพื่อรับค่าเริ่มต้นของตัวแปร แต่อินเทอร์เฟซไม่มีตัวสร้างใด ๆ เนื่องจากไม่มีเขตข้อมูลที่จะเริ่มต้น เขตข้อมูลของอินเทอร์เฟซถูกเตรียมใช้งานในเวลาของการประกาศของพวกเขาเท่านั้น

สรุป:

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

Top