โปรแกรมตัวอย่างมีคลาส Student ที่มีคุณสมบัติ name, age, id และวิธีการ getGPA() หากต้องสร้างคลาส GraduateStudent ที่มีคุณสมบัติเพิ่มเติม thesis ควรใช้หลักการอะไร

ใช้ Composition โดยให้ GraduateStudent มี Student เป็นคุณสมบัติ
สร้างคลาส GraduateStudent ขึ้นใหม่ทั้งหมดพร้อมคัดลอกโค้ดจาก Student
การสืบทอด (Inheritance) โดยให้ GraduateStudent สืบทอดมาจาก Student
ใช้ Global Variable เพื่อเก็บข้อมูลของนักเรียนทั้งสองประเภท

เฉลยอธิบาย

หลักการ Inheritance (การสืบทอด) ในโปรแกรมเชิงวัตถุคือการสร้างคลาสใหม่ที่สืบทอดมาจากคลาสที่มีอยู่แล้ว เพื่อให้นำคุณสมบัติและวิธีการของคลาสเดิมมาใช้ได้ และสามารถเพิ่มคุณสมบัติใหม่เข้าไป ในกรณีนี้ GraduateStudent สืบทอดจาก Student จะได้คุณสมบัติ name, age, id และวิธี getGPA() และเพิ่ม thesis เข้าไป ตัวเลือก C เหมาะเมื่อ GraduateStudent เป็นชนิดย่อยของ Student ส่วน B ทำให้โค้ดซ้ำ A เป็นแบบจำลอง has-a ที่ไม่ตรงความสัมพันธ์นี้ และ D ใช้สถานะส่วนกลางโดยไม่จำเป็น

ข้อสอบอื่นในวิชาการพัฒนาระบบสารสนเทศ วิเคราะห์ ออกแบบ และการเขียนโปรแกรมคอมพิวเตอร์

ดูข้อสอบวิชานี้ทั้งหมด →