mystou.com
การมีหลายรูปแบบ (Polymorphism) - MySTOU.com
การมีหลายรูปแบบ (Polymorphism) เป็นกระบวนการทำงานที่อาศัยการสืบทอด (Inheritance) และการเขียนทับ (Overriding) มาทำงานร่วมกัน จนเราสามารถสร้างออบเจ็กต์อ้างอิงเพียงออบเจ็กต์เดียว และเรียกใช้เมธอดเดียวเพื่อให้ได้ผลลัพธ์ที่หลากหลายได้ พยายามต่อยอดบทความนี้ โดยการอาศัยความรู้พื้นฐานจาก 2 บทความด้านล่างนะคะ จะทำให้เรารู้สึกว่าเรื่องนี้ไม่ยากจนเกินไป การสืบทอด (Inheritance) การเขียนทับ (Overriding) “การสืบทอดคลาส” เราพูดถึงมันโดยเน้นไปที่การออกแบบคลาส ในขณะที่ “การเขียนทับ” เราเน้นไปที่การสร้างออบเจ็กต์จากคลาสลูกต่าง ๆ ขึ้นมา จากนั้นก็เรียกใช้เมธอด calculateSalary() จากแต่ละออบเจ็กต์ตรง ๆ เลย ทำให้ได้ผลลัพธ์ที่แตกต่างกัน ในบทความนี้เราจะปรับปรุงโค้ดเฉพาะภายในคลาส Main.java เท่านั้น คือ การสร้าง ArrayList ขึ้นมาเก็บออบเจ็กต์ต่าง ๆ เอาไว้ แล้วทำซ้ำ (loop) โดยการเรียกใช้เมธอด calculateSalary() เพื่อให้ได้ผลลัพธ์ที่แตกต่างกันออกมา การเรียกใช้ครั้งนี้เราไม่ได้ทำระดับออบเจ็กต์ แต่อ้างอิงไปที่ชนิดตัวแปรที่เป็นคลาสแม่ ทำให้เรามองข้ามเรื่องความแตกต่างของแต่ละออบเจ็กต์ไปได้เลย และทุก ๆ ออบเจ็กต์สามารถเรียกใช้เมธอด calculateSalary() …