ความแตกต่างระหว่างการขยายและการนำไปใช้ใน Java คืออะไร

Khwam Taek Tang Rahwang Kar Khyay Laea Karna Pi Chi Ni Java Khux Xari



ใน Java, the “ ขยาย ' และ ' ดำเนินการ ” คำหลักมีความสำคัญอย่างยิ่งในการรวมฟังก์ชันการทำงานหลายอย่างเข้าด้วยกันอย่างมีประสิทธิภาพ ตัวอย่างเช่น การสืบทอดฟังก์ชันการทำงานที่จัดสรรไว้แล้วเพื่ออัปเดตหรือจัดเรียงข้อมูลในลักษณะที่เหมาะสม ตามลำดับ ในกรณีเช่นนี้ คีย์เวิร์ด 'ขยาย' และ 'ใช้งาน' จะมีประโยชน์ในการทำให้สิ่งต่างๆ สะดวกขึ้นเมื่อสิ้นสุดการทำงานของนักพัฒนาและจัดการทรัพยากรอย่างมีประสิทธิภาพ

บล็อกนี้จะเน้นความแตกต่างระหว่าง Java “extends” และ “implements”







คำหลัก 'ขยาย' Java

จาวา “ ขยาย ” คำสำคัญถูกใช้โดยคลาสลูกเช่น “ ได้มา ” เพื่อสืบทอดคลาสพาเรนต์เช่น “ ฐาน ” โดยการเข้าถึงฟังก์ชันการทำงาน



ไวยากรณ์



คลาส A {
// ร่างกาย
}
คลาส B ขยาย A {
// ร่างกาย
}





ในไวยากรณ์นี้ “ ” สอดคล้องกับคลาสลูกที่สืบทอดคลาสพาเรนต์ “ ” ผ่านทาง “ ขยาย ' คำสำคัญ.

ตัวอย่างที่ 1: การใช้คีย์เวิร์ด “extends” ใน Java



ตัวอย่างนี้ใช้ ' ขยาย ” คำสำคัญที่จะสืบทอดพาเรนต์เช่น “ ฐาน ' ระดับ:

คลาส Parentclass {
สตริง x = 'ผม' ;
}
คลาส childclass ขยาย Parentclass {
เชื่อมต่อสตริงสาธารณะ ( ) {
กลับ x.concat ( 'รี่' ) ;
} }
คลาสสาธารณะขยาย {
โมฆะสาธารณะคงหลัก ( อาร์กิวเมนต์สตริง [ ] ) {
วัตถุคลาสลูก = คลาสลูกใหม่ ( ) ;
System.out.println ( object.concat ( ) ) ;
} }

ตามข้อมูลโค้ดด้านบน ใช้ขั้นตอนต่อไปนี้:

  • ประการแรก ประกาศคลาสพาเรนต์ชื่อ “ ผู้ปกครอง '.
  • ในคำจำกัดความ เริ่มต้นตัวแปรที่ระบุ
  • ตอนนี้ สืบทอดคลาสลูกจากคลาสพาเรนต์ผ่านทาง ' ขยาย ' คำสำคัญ.
  • ในนิยามคลาสย่อย ให้กำหนดฟังก์ชันชื่อ “ เชื่อม () '.
  • ในนิยามของฟังก์ชัน ให้เรียกใช้ตัวแปรจากคลาสพาเรนต์และต่อท้ายสตริงที่ระบุผ่าน ' เชื่อม () ' วิธี.
  • ใน ' หลัก() ” วิธีการสร้างวัตถุระดับลูกโดยใช้ “ ใหม่ ” คำหลักและ “ คลาสลูก() ” ตัวสร้าง
  • สุดท้าย เรียกใช้ฟังก์ชันคลาสลูก “ เชื่อม () ” ผ่านวัตถุที่สร้างขึ้น

เอาต์พุต

ในผลลัพธ์นี้ จะเห็นภาพได้ว่าการทำงานของคลาสพาเรนต์คือ “ ตัวแปร (x) ” ได้รับการสืบทอดมาอย่างเหมาะสมผ่านคีย์เวิร์ด “extends” ดังนั้นสตริงจึงเชื่อมต่อกันตามลำดับ

คำหลัก 'ใช้งาน' Java

ดำเนินการ ” คีย์เวิร์ดถูกนำไปใช้เพื่อใช้อินเทอร์เฟซในคลาสจากไฟล์เดียวกันหรือไฟล์ภายนอก

ไวยากรณ์

อินเทอร์เฟซสาธารณะ InterfaceName {
โมฆะ x ( ) ;
โมฆะเริ่มต้น y ( ) {
// ร่างกาย
}
}
คลาส z ใช้ InterfaceName {
// ร่างกายของชั้นเรียน
}

ในไวยากรณ์นี้:

  • x ” หมายถึงวิธีการนามธรรม
  • และ ” หมายถึงวิธีการเริ่มต้น
  • คลาส z ” สอดคล้องกับคลาสที่ใช้ “ ชื่ออินเทอร์เฟซ ” อินเทอร์เฟซผ่าน “ ดำเนินการ ' คำสำคัญ.

ตัวอย่างที่ 2: การใช้คีย์เวิร์ด “implements” ใน Java

ในตัวอย่างนี้ อินเทอร์เฟซประกอบด้วย “ เชิงนามธรรม ' และ ' ค่าเริ่มต้น ” วิธีการสามารถนำไปใช้ในชั้นเรียน

รหัสอินเทอร์เฟซ

อายุอินเทอร์เฟซสาธารณะ {
ชื่อโมฆะสาธารณะ ( ) ;
DOB เป็นโมฆะเริ่มต้น ( ) {
System.out.println ( 'ทบ. -> 28/8/2542' ) ;
} }

ในโค้ดอินเตอร์เฟสข้างต้น รวมวิธีการแบบนามธรรมที่ชื่อว่า “ ชื่อ() ” และกำหนดวิธีการเริ่มต้น “ ทบ.() ” พิมพ์ข้อความดังกล่าวตามลำดับ

รหัสชั้นเรียน

ตอนนี้ ดำเนินการต่อไปยังบรรทัดของรหัสต่อไปนี้:

ตัวอย่างคลาสใช้อายุ {
ชื่อโมฆะสาธารณะ ( ) {
System.out.println ( 'ชื่อ -> เดวิด' ) ;
} }
อินเตอร์เฟสคลาสสาธารณะ2 {
โมฆะสาธารณะคงหลัก ( อาร์กิวเมนต์สตริง [ ] ) {
วัตถุตัวอย่าง = ตัวอย่างใหม่ ( ) ;
object.name ( ) ;
object.DOB ( ) ;
} }

ในบล็อกรหัสนี้:

  • กำหนดคลาสชื่อ “ ตัวอย่าง ” การใช้งานอินเทอร์เฟซ “ อายุ ” ผ่านทาง “ ดำเนินการ ' คำสำคัญ.
  • ในคำจำกัดความ (คลาส) ให้กำหนดวิธีการนามธรรม ' ชื่อ() ” ระบุในส่วนต่อประสานที่แสดงชื่อที่ระบุ
  • ใน ' หลัก() ” วิธีการสร้างคลาสวัตถุด้วยวิธีที่กล่าวถึง
  • สุดท้าย เรียกใช้วิธีการนามธรรมและเริ่มต้นโดยใช้วัตถุที่สร้างขึ้นตามลำดับ

เอาต์พุต

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

ความแตกต่างหลักระหว่าง 'ขยาย' และ 'ใช้งาน' ใน Java

ต่อไปนี้คือความแตกต่างหลักบางประการระหว่างคีย์เวิร์ด 'extends' และ 'implements' ใน Java:

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

บทสรุป

ขยาย ” คำสำคัญสามารถใช้โดยคลาสหรืออินเทอร์เฟซเพื่อสืบทอดคลาสพาเรนต์หรืออินเทอร์เฟซอื่น ๆ ในขณะที่ “ ดำเนินการ ” คำหลักถูกใช้โดยคลาสเพื่อใช้อินเทอร์เฟซ บล็อกนี้แสดงความแตกต่างระหว่าง 'extends' และ 'implements' ใน Java ด้วยความช่วยเหลือของตัวอย่างที่ใช้งานได้จริง