จากรูป Class A ก็เปรียบเหมือน “Superclass” ซึ่งเป็นคลาสหลักที่เป็นต้นแบบ
ส่วน Class B และ Calss C นั้นเป็นคลาสที่สืบทอดคุณสมบัติจาก Class A มาอีกทีนึงเราเรียกว่า
“Subclass” ซึ่งภายในคลาส B และ C จะสามารถเข้าถึงสมาชิกหรือ Method ต่างๆ ของคลาส
A ได้ ตัวอย่างเช่น
class ชื่อ subclass extends
ชื่อ superclass
เช่น class B extends class A จะหมายถึง คลาส B เป็น subclass
ของ class A ตัวอย่างเช่น
class A { int x ; }
class B extends class A { int y ; }
ทำการสร้าง instance จากคลาสทั้ง 2
A a = new A() ;
B b= new B() ;
คลาส A มีสมาชิก 1 ตัวคือ x และคลาส B สืบทอดคุณสมบัติของคลาส
A โดยในคลาส B มีสมาชิก 1 ตัวคือ y เมื่อเราสร้าง insatnce จากคลาส B เราจะได้สมาชิกของคลาส
A คือ x มาใช้งานได้ด้วย ลองมาดูตัวอย่างจากโปรแกรมกันครับ
อธิบายโปรแกรม
โปรแกรมนี้มี 3 class โดยที่ class out2 จะสืบทอดคุณสมบัติจาก class out1 ให้เรามาดูที่
class Inherit นะครับมีการสร้าง instance 2 ตัว คือ sup จะเป็น instance ของคลาส
out1 และ sub จะเป็น instance ของคลาส out2 บรรทัดที่ 24 และ 25 เป็นการ assign
ค่าให้กับ i , j โดยใช้ sup จากนั้นก็เรียก showij() มาแสดงผลอันนี้ไม่แปลกนะครับเพราะ
sup เป็น instance ของคลาส out1 อยู่แล้ว แต่พอมาดูที่บรรทัด 27 และ 28 จะเห็นว่ามีการ
assign ค่าให้กับ i , j ใหม่โดยใช้ sub ซึ่งเป็น instance ของคลาส out2 ซึ่งใน
out2 ไม่ได้ประกาศตัวแปรทั้งไว้เลย แต่ที่ทำแบบนี้ได้เพราะคุณสมบัติ inheritance
นั่นแหละครับที่ทำให้ sub สามารถใช้งาน i , j ได้และนอกจากนั้นยังเรียกใช้ Method
showij() ที่อยู่ในคลาส out1 ได้อีกด้วยในบรรทัดที่ 30 ลองสังเกตผลลัพธ์ที่ได้ดูนะครับ