/ OOP

[365 วันแห่งโปรแกรม #day9] Principles of OOP (ตอนที่ 4)

วันที่เก้าของ ‪#‎365วันแห่งโปรแกรม‬ วันนี้เราจะมีคุยกันเรื่อง Principles of OOP (ตอนที่ 4)


เรื่องต่อไปนี้คือเรื่องสุดท้ายของหลักจากเบื้องต้นของ OOP นั่นก็คือ Polymorphism

Polymorphism คือสภาวะที่วัตถุชนิดเดียวกันกลุ่มหนึ่ง มีสมาชิกที่แตกต่างกันตั้งแต่ 2 แบบขึ้นไป ถ้าพูดในเชิงชีววิทยาก็จะเป็น สปีชีส์หนึ่งๆ มีสมาชิกที่มีฟีโนทัยป์ต่างกันตั้งแต่ 2 ฟีโนทัยป์ขึ้นไป

ในเชิงโปรแกรมมิ่ง Polymorphism สภาวะที่ interface หนึ่งๆ สามารถใช้ได้กับวัตถุหลากหลายชนิด โดย Polymorphism ก็จะมีอยู่หลายลักษณะ ได้แก่

  • Overloading (ad hoc polymorphism) คือการที่มี implementation ของฟังก์ชันเดียวกันหลายอันเพื่อรองรับพารามิเตอร์ที่มีชนิดต่างกัน

  • Generics คือการที่ method หรือ class รับพารามิเตอร์โดยไม่ระบุชนิด ซึ่งทำให้เราสามารถส่งตัวแปรชนิดใดก็ได้เข้าไป โดยทั่วไปมักพบในโครงสร้างข้อมูลชนิดต่างๆ เช่น List, Set, Dictionary<K,V> ในภาษาที่เป็น functional จะเรียกวิธีนี้ว่า polymorphism

  • Subtyping คือการที่ตัวแปรชนิดหนึ่งสามารถรับค่าของตัวแปรอีกชนิดอื่นได้โดยตรง ซึ่งจะเกิดขึ้นได้ก็ต่อเมื่อ ค่าที่เอามากำหนดนั้นเป็น instance ของ class ที่สืบทอดมาจากชนิดของตัวแปรฝั่งรับ กล่าวคือ เมื่อ B, C, และ D เป็น subclass ของ A แล้ว เราสามารถบอกได้ว่า B, C, และ D นั้นเป็น A ด้วย ทำให้เราสามารถแทนค่าตัวแปรชนิด A ด้วย instance ของ B, C, หรือ D ได้โดยตรง ในภาษาที่เป็น OOP มักเรียกแทนวิธีนี้ว่า polymorphism

‪#‎day9‬ #365วันแห่งโปรแกรม ‪#‎โครงการ365วันแห่ง‬...