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

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

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

วีดีโอ: ความแตกต่างระหว่างคลาสนามธรรมกับคลาสคอนกรีต
วีดีโอ: คลิปที่-0058-การใช้งาน nps proxy 2024, กรกฎาคม
Anonim

คลาสนามธรรมกับคลาสคอนกรีต

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

คอนกรีตคลาสคืออะไร

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

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

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

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

วิชานามธรรมกับวิชาคอนกรีตแตกต่างกันอย่างไร

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