โปรแกรมตัวอย่างมีคลาส 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 ใช้สถานะส่วนกลางโดยไม่จำเป็น