ความแตกต่างระหว่างการสืบทอดและส่วนต่อประสานใน Java

สารบัญ:

ความแตกต่างระหว่างการสืบทอดและส่วนต่อประสานใน Java
ความแตกต่างระหว่างการสืบทอดและส่วนต่อประสานใน Java

วีดีโอ: ความแตกต่างระหว่างการสืบทอดและส่วนต่อประสานใน Java

วีดีโอ: ความแตกต่างระหว่างการสืบทอดและส่วนต่อประสานใน Java
วีดีโอ: Abstraction & Interface in Java 2024, กรกฎาคม
Anonim

ความแตกต่างที่สำคัญ – การสืบทอดเทียบกับส่วนต่อประสานใน Java

Java เป็นภาษาโปรแกรมที่พัฒนาโดย Sun Microsystems Java สามารถใช้ในการพัฒนาแอพพลิเคชั่นต่างๆ เป็นภาษาแบบหลายกระบวนทัศน์ที่สนับสนุนเชิงวัตถุ โครงสร้าง ฯลฯ ข้อได้เปรียบหลักของ Java คือสนับสนุนการเขียนโปรแกรมเชิงวัตถุ (OOP) โปรแกรมเมอร์สามารถสร้างคลาสและอ็อบเจ็กต์ได้ OOP มีสี่เสาหลัก สิ่งเหล่านี้คือการสืบทอด ความหลากหลาย นามธรรม และการห่อหุ้ม การสืบทอดและอินเทอร์เฟซเกี่ยวข้องกับ OOP ความแตกต่างที่สำคัญระหว่างการสืบทอดและอินเทอร์เฟซคือการสืบทอดคือการสืบทอดคลาสใหม่จากคลาสที่มีอยู่และอินเทอร์เฟซคือการใช้คลาสนามธรรมและการสืบทอดหลายรายการ

มรดกในภาษาจาวาคืออะไร

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

ไวยากรณ์ของการสืบทอด Java มีดังต่อไปนี้

คลาส subclass_name ขยาย superclass_name {

การประกาศตัวแปร

ประกาศวิธีการ

}

แนวคิดการสืบทอดสามารถอธิบายได้โดยใช้ตัวอย่างต่อไปนี้ สมมติว่ามีคลาส A ดังนี้

สาธารณะ A{

ผลรวมโมฆะสาธารณะ(){

System.out.println(“ผลรวม”);

}

}

หากต้องการเพิ่ม method ใหม่โดยไม่เปลี่ยน class เดิม สามารถทำได้ดังนี้

คลาสสาธารณะ B{

ย่อยโมฆะสาธารณะ(){

System.out.println(“Sub”);

}

}

โปรแกรมเมอร์สามารถใช้มรดกเพื่อใช้ผลรวมคลาส A().

สาธารณะคลาส B ขยายคลาส A{

ย่อยโมฆะสาธารณะ(){

System.out.println(“Sub”);

}

}

ในฟังก์ชันหลัก คุณสามารถสร้างวัตถุของ B และ call sub() ซึ่งเป็นของคลาส B และ sum() ซึ่งเป็นของคลาส A โดยใช้การสืบทอด

public static void main(สตริง args){

B obj=ใหม่ B();

obj.sub();

obj.sum();

}

มรดกมีหลายประเภท เป็นการสืบทอดเดี่ยว การสืบทอดหลายรายการ การสืบทอดหลายระดับ และการสืบทอดตามลำดับชั้น ในการสืบทอดเดี่ยว มีคลาสฐานหนึ่งคลาสและคลาสที่ได้รับหนึ่งคลาสในการสืบทอดหลายระดับ มีสามคลาสคือ คลาสฐาน คลาสกลาง และคลาสที่ได้รับ คลาสระดับกลางสืบทอดจากคลาสพื้นฐาน และคลาสที่ได้รับสืบทอดมาจากคลาสระดับกลาง ในการสืบทอดตามลำดับชั้น มีคลาสฐานหนึ่งคลาสและคลาสที่ได้รับจำนวนมาก มีชนิดพิเศษที่เรียกว่ามรดกไฮบริด เป็นการรวมกันระหว่างมรดกตั้งแต่สองประเภทขึ้นไป

ความแตกต่างระหว่างการสืบทอดและส่วนต่อประสานใน Java
ความแตกต่างระหว่างการสืบทอดและส่วนต่อประสานใน Java

รูปที่ 01: มรดก

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

ส่วนต่อประสานใน Java คืออะไร

Abstraction คือกระบวนการซ่อนรายละเอียดการใช้งานและแสดงเฉพาะฟังก์ชันให้ผู้ใช้เห็น นามธรรมสามารถทำได้โดยใช้คลาสนามธรรมหรืออินเทอร์เฟซ วิธีการเชิงนามธรรมคือวิธีการที่ไม่มีการใช้งาน คลาสที่มีเมธอดนามธรรมอย่างน้อยหนึ่งวิธีคือคลาสนามธรรม ตัวอย่างคลาสนามธรรมมีดังนี้

นามธรรมคลาส A{

ผลรวมโมฆะนามธรรม();

}

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

อินเทอร์เฟซ A{

ผลรวมเป็นโมฆะ();

}

อินเทอร์เฟซ B{

void sub();

}

คลาส C ใช้ A, B{

ผลรวมโมฆะสาธารณะ(){

System.out.println(“ผลรวม”);

}

ย่อยโมฆะสาธารณะ(){

System.out.println(“การลบ”);

}

}

ตอนนี้ ในโปรแกรมหลัก คุณสามารถสร้างวัตถุของ C และเรียกทั้งสองวิธีได้

public static void main (สตริง args) {

C obj=ใหม่ C();

obj.sum();

obj.sub();

}

ดังนั้น อินเทอร์เฟซสามารถใช้เพื่อปรับใช้การสืบทอดหลายรายการ

การใช้อินเทอร์เฟซอีกอย่างคือให้ความปลอดภัย อ้างอิงรหัสด้านล่าง

อินเทอร์เฟซ A {

ผลรวมเป็นโมฆะ ();

}

คลาส B ใช้งาน A {

ผลรวมโมฆะสาธารณะ () {

System.out.println(“ผลรวม”);

}

โมฆะสาธารณะ คูณ () {

System.out.println(“การคูณ”);

}

}

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

public static void main(สตริง args){

A obj=ใหม่ B();

obj.sum();

}

A obj=ใหม่ B(); จะสร้างวัตถุ เป็นประเภท A และหน่วยความจำถูกจัดสรรเป็น B เป็นไปได้ที่จะเรียก sum() แต่ไม่สามารถดำเนินการ multiply() ข้อจำกัดนี้ทำได้โดยใช้อินเทอร์เฟซ

ความคล้ายคลึงกันระหว่างการสืบทอดและอินเทอร์เฟซใน Java คืออะไร

  • แนวคิดทั้งสองเกี่ยวข้องกับการเขียนโปรแกรมเชิงวัตถุ
  • ทั้งสองเป็นตัวแทนของความสัมพันธ์แบบ IS-A

ความแตกต่างระหว่างการสืบทอดและส่วนต่อประสานใน Java คืออะไร

การสืบทอดเทียบกับส่วนต่อประสานใน Java

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

สรุป – การสืบทอดเทียบกับส่วนต่อประสานใน Java

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

ดาวน์โหลดเวอร์ชัน PDF ของการสืบทอดเทียบกับส่วนต่อประสานใน Java

คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดเวอร์ชัน PDF ที่นี่ ความแตกต่างระหว่างการสืบทอดและอินเทอร์เฟซใน Java

แนะนำ: