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

ผู้เขียน: Laura McKinney
วันที่สร้าง: 2 เมษายน 2021
วันที่อัปเดต: 10 พฤษภาคม 2024
Anonim
ทำความรู้จักกับ JAVA Connect JDBC Database Training
วิดีโอ: ทำความรู้จักกับ JAVA Connect JDBC Database Training

เนื้อหา


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

  1. แผนภูมิเปรียบเทียบ
  2. คำนิยาม
  3. ความแตกต่างที่สำคัญ
  4. ข้อสรุป

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

พื้นฐานสำหรับการเปรียบเทียบชั้นอินเตอร์เฟซ
ขั้นพื้นฐานคลาสถูกสร้างเป็นอินสแตนซ์เพื่อสร้างวัตถุไม่สามารถอินเทอร์เฟซอินสแตนซ์ได้เนื่องจากวิธีการไม่สามารถดำเนินการใด ๆ กับการเรียกใช้
คำสำคัญชั้นอินเตอร์เฟซ
ตัวระบุการเข้าถึงสมาชิกของคลาสสามารถเป็นส่วนตัวเป็นสาธารณะหรือได้รับการคุ้มครองสมาชิกของอินเทอร์เฟซเปิดเผยต่อสาธารณะเสมอ
วิธีการ มีการกำหนดวิธีการเรียนเพื่อดำเนินการเฉพาะวิธีการในส่วนต่อประสานนั้นเป็นนามธรรมล้วนๆ
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. คลาสมีคอนสตรัคเตอร์ที่กำหนดไว้ภายในเพื่อรับค่าเริ่มต้นของตัวแปร แต่อินเทอร์เฟซไม่มีตัวสร้างใด ๆ เนื่องจากไม่มีเขตข้อมูลที่จะเริ่มต้น ฟิลด์ของอินเทอร์เฟซถูกเตรียมใช้งานในเวลาที่ประกาศเท่านั้น

สรุป:

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