ใน 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 ด้วยความช่วยเหลือของตัวอย่างที่ใช้งานได้จริง