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

สารบัญ:

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

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

วีดีโอ: ความแตกต่างระหว่างคลาสนามธรรมกับการสืบทอด
วีดีโอ: รู้จักกับ Software Engineering ใน 5 นาที - Me สาระ EP.23 2024, กรกฎาคม
Anonim

นามธรรมกับมรดก

Abstract class and Inheritance เป็นแนวคิดเชิงวัตถุที่สำคัญสองแนวคิดที่พบในภาษาโปรแกรมเชิงวัตถุมากมาย เช่น Java คลาสนามธรรมถือได้ว่าเป็นรุ่นนามธรรมของคลาสปกติ (คอนกรีต) ในขณะที่การสืบทอดอนุญาตให้คลาสใหม่สามารถขยายคลาสอื่นได้ คลาสนามธรรมเป็นคลาสที่ไม่สามารถเริ่มต้นได้ แต่สามารถขยายได้ ดังนั้นคลาสนามธรรมจึงมีความหมายก็ต่อเมื่อภาษาการเขียนโปรแกรมรองรับการสืบทอด ใน Java คลาส Abstract ถูกประกาศโดยใช้คีย์เวิร์ด Abstract ในขณะที่คีย์เวิร์ด Extends ใช้สำหรับสืบทอดจากคลาส (super)

บทคัดย่อคืออะไร

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

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

มรดกคืออะไร

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

Abstract Class กับ Inheritance ต่างกันอย่างไร

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

โพสต์ที่เกี่ยวข้อง:

Image
Image
Image
Image

ความแตกต่างระหว่างคลาสนามธรรมกับคลาสคอนกรีต

Image
Image
Image
Image

ความแตกต่างระหว่างเสมือนจริงและนามธรรม

Image
Image
Image
Image

ความแตกต่างระหว่างคลาสนามธรรมและส่วนต่อประสาน

Image
Image
Image
Image

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

Image
Image
Image
Image

ความแตกต่างระหว่างกราฟกับต้นไม้

Filed Under: Programming Tagged with: ABC, นามธรรม, คลาสพื้นฐานนามธรรม, คลาสนามธรรม, คลาสนามธรรม, คีย์เวิร์ดนามธรรม, วิธีการแบบนามธรรม, คลาสที่เป็นรูปธรรม, ขยายคีย์เวิร์ด, การสืบทอด, คลาสการสืบทอด, คลาสที่สืบทอด, Java, การสืบทอดหลายรายการ, แนวคิดเชิงวัตถุ, คลาสปกติ, ซูเปอร์คลาส

ภาพ
ภาพ

เกี่ยวกับผู้แต่ง: Indika

Indika, BSc. Eng, MSECE Computer Engineering, PhD. วิทยาการคอมพิวเตอร์เป็นผู้ช่วยศาสตราจารย์และมีความสนใจด้านการวิจัยในสาขาชีวสารสนเทศ ชีววิทยาเชิงคำนวณ และการประมวลผลภาษาธรรมชาติทางชีวการแพทย์

ความคิดเห็น

  1. ภาพ
    ภาพ

    เจสันพูดว่า

    30 สิงหาคม 2560 เวลา 13:25 น.

    ขอบคุณที่อธิบายความแตกต่าง คำถามของฉันได้รับการแก้ไขแล้ว

    ตอบกลับ

  2. ภาพ
    ภาพ

    ออสพูดว่า

    10 พฤษภาคม 2562 เวลา 15:04 น.

    คำตอบที่ดีที่สุดบนเว็บ ครูไม่ได้อธิบายเรื่องไร้สาระและไม่มีเหตุผล โมโนโทน mf นี่คือวิธีที่คุณอธิบายแนวคิด

    ตอบกลับ

ทิ้งคำตอบ ยกเลิกการตอบ

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกมีเครื่องหมาย

คอมเมนต์

ชื่อ

อีเมล

เว็บไซต์

ขอบทความ
ขอบทความ
ขอบทความ
ขอบทความ

กระทู้แนะนำ

ความแตกต่างระหว่าง Coronavirus กับอาการหวัด
ความแตกต่างระหว่าง Coronavirus กับอาการหวัด

ความแตกต่างระหว่างไวรัสโคโรน่ากับอาการหวัด

ความแตกต่างระหว่าง Coronavirus และ SARS
ความแตกต่างระหว่าง Coronavirus และ SARS

ความแตกต่างระหว่างไวรัสโคโรน่ากับซาร์ส

ความแตกต่างระหว่าง Coronavirus และ Influenza
ความแตกต่างระหว่าง Coronavirus และ Influenza

ความแตกต่างระหว่างไวรัสโคโรน่ากับไข้หวัดใหญ่

ความแตกต่างระหว่าง Coronavirus และ Covid 19
ความแตกต่างระหว่าง Coronavirus และ Covid 19

ความแตกต่างระหว่างไวรัสโคโรน่ากับโควิด 19

คุณอาจจะชอบ

ความแตกต่างระหว่างไซบีเรียนฮัสกีกับมาลามิวท์

ความแตกต่างระหว่างแคลคูลัส AB และ BC