Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

พอลิморฟิซึมใน Java

พอลิморฟิซึมคือความสามารถของออบเจ็กต์ที่จะมีหลายรูปแบบ การใช้งานที่พบบ่อยที่สุดของพอลิморฟิซึมใน OOP เกิดขึ้นเมื่อการอ้างอิงของคลาสแม่ถูกใช้เพื่ออ้างอิงถึงออบเจ็กต์ของคลาสลูก

ออบเจ็กต์ Java ใดๆ ที่สามารถผ่านการทดสอบ IS-A มากกว่าหนึ่งครั้ง ถือว่าเป็น polymorphic ใน Java ทุกออบเจ็กต์ Java เป็น polymorphic เนื่องจากออบเจ็กต์ใดๆ จะผ่านการทดสอบ IS-A สำหรับประเภทของตัวเองและสำหรับคลาส Object

สำคัญที่ต้องรู้ว่าวิธีเดียวที่จะเข้าถึงออบเจ็กต์คือผ่านตัวแปรอ้างอิง (reference variable) ตัวแปรอ้างอิงสามารถเป็นได้เพียงหนึ่งประเภท หนึ่งครั้งที่ประกาศแล้ว ประเภทของตัวแปรอ้างอิงไม่สามารถเปลี่ยนแปลงได้

ตัวแปรอ้างอิงสามารถกำหนดใหม่ให้กับออบเจ็กต์อื่นๆ ได้ โดยที่มันไม่ได้ประกาศเป็น final ประเภทของตัวแปรอ้างอิงจะกำหนดเมธอดที่มันสามารถเรียกใช้บนออบเจ็กต์ได้

ตัวแปรอ้างอิงสามารถอ้างอิงถึงออบเจ็กต์ใดๆ ของประเภทที่ประกาศไว้ หรือชนิดย่อย (subtype) ของประเภทที่ประกาศไว้ ตัวแปรอ้างอิงสามารถประกาศเป็นประเภทคลาสหรืออินเทอร์เฟซได้

ตัวอย่าง

ลองดูตัวอย่าง

public interface Vegetarian{} public class Animal{} public class Deer extends Animal implements Vegetarian{}

ตอนนี้ คลาส Deer ถือว่าเป็น polymorphic เนื่องจากนี้มีการสืบทอดหลายแบบ (multiple inheritance) ต่อไปนี้เป็นจริงสำหรับตัวอย่างข้างต้น:

  • A Deer IS-A Animal
  • A Deer IS-A Vegetarian
  • A Deer IS-A Deer
  • A Deer IS-A Object

เมื่อเราใช้ข้อเท็จจริงของตัวแปรอ้างอิงกับการอ้างอิงออบเจ็กต์ Deer การประกาศต่อไปนี้ถูกต้อง:

ตัวอย่าง

Deer d = new Deer(); Animal a = d; Vegetarian v = d; Object o = d;

ตัวแปรอ้างอิงทั้งหมด d, a, v, o อ้างอิงถึงออบเจ็กต์ Deer เดียวกันใน heap