
Method Overloading
นพศร แก้วเย็นฉ่ำ 650710557
Overloading Method หมายถึงอะไร? 🏕️
Overloading Method หมายถึงอะไร? 🏕️
คือ วิธีการทั่วไปในการนำ "Polymorphism" มาใช้ ซึ่งเป็นความสามารถในการกำหนดฟังก์ชันใหม่ในรูปแบบ มากกว่าหนึ่งรูปแบบ ที่สามารถนำฟังก์ชัน "Overloading" มาใช้ได้โดยการกำหนดการทำงานสองรายการขึ้นไปในคลาสที่มีชื่อ method เดียวกัน ตัว C# สามารถแยกแยะเมธอดที่มี พารามิเตอร์ของเมธอดต่างกันได้
พารามิเตอร์ของเมธอดต่างกันได้ หมายถึง เมธอดสามารถมีชื่อเดียวกันได้แต่มีการรับพารามิเตอร์ที่ต่างออกไปจากMethodเดิม เช่น "จำนวนพารามิเตอร์", "ลำดับของพารามิเตอร์", "ประเภทข้อมูลของพารามิเตอร์" ภายในคลาสเดียวกันหรือจะเกิดการ " Overloading " ระหว่าง " Parent Class " กับ " Sub Class " ได้เหมือนกัน
🚧🚧🚧🚧🚧 ตัวอย่างการสร้าง Method Overloading ด้วยC# 🚧🚧🚧🚧🚧
using System;
class My_Parent{
public void Display(int value_int){
Console.WriteLine("Integer: " + value_int);
}
// Method Overloading เปลี่ยนการรับพารามิเตอร์จาก int เป็น String ภายใน class My_Parent
public void Display(string valueString){
Console.WriteLine("String: " + value_String);
}
}🚧🚧🚧🚧🚧 Output ที่ได้หลังจากรันคำสั่งใน C# 🚧🚧🚧🚧🚧
ข้อควรระวังในการทำ Method Overloading ใน C#
เปรียบเทียบ Method Overloading ระหว่าง C# กับ Java, C, Python ⛺
🏜️ C#
🌄 Java
🚨🚨 จะเห็นได้ว่า ใน C# และ Java นั้นไม่ได้มีความต่างกันในเรื่องของการทำ " Overloading Method " เพราะทั้งใน C# และ Java มีการใช้ภาษาเชิงวัตถุ และมีการรองรับการใช้ " Overloading Method " อย่างเป็นที่ชัดเจน ในภาษา Java เรียกการทำ Overloading Method ว่า " Early Binding " 🚨🚨
🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧
🏔️ C
🛑🛑 เนื่องในภาษา C ไม่มีการรองรับ การทำ " Overloading Method " เพราะ C ไม่เป็น ภาษาเชิงวัตถุ (Object-Oriented Programming) และอีกเหตุผลเป็นเพราะคอมไพเลอร์ไม่รองรับ จึงต้องใช้ชื่อในการสร้างฟังก์ชั่น (method) ที่แตกต่างกัน 🛑🛑
❗️❗️❗️ แต่หลังจาก มีการเพิ่มตัว " _Generic " มาใน C11 (รองรับใน GCC ตั้งแต่เวอร์ชัน 4.9) ก็ทำให้สามารถเรียกกาารใช้งานฟังก์ชั่นโดยที่ไม่ต้องเรียกฟังก์ชันที่มีชื่อแตกต่างกันที่ละตัว ❗️❗️❗️
🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧
🏝️ Python
🚨🚨 เดิมทีใน Python นั้นมีความหยืดหยุ่นทางการประกาศชนิดตัวแปร เพราะเป็น ภาษาแบบ " Dynamically typed language " ซึ่งจะไม่ได้มีการกำหนดชนิดข้อมูลตั้งแต่ตอนประกาศเหมือน C#, C, Java ทำให้การทำ " Overloading Method " ด้วยการเปลี่ยนการรับชนิดพารามิเตอร์นั้นไม่ได้จำเป็นมากนะ แต่ก็สามารถทำการกำหนดชนิดข้อมูลเช็คก่อนแล้วค่อยทำการรีเทิร์นค่าได้เหมือนกัน 🚨🚨
🛑🛑 การเพิ่มจำนวนพารามิเตอร์ที่จะต้องการรับก็สามารถทำได้เเหมือนกันกับภาษา C# 🛑🛑
Slides 🎑
Video 🌠
Reference 🚝🗻
C#
- https://csharp.net-tutorials.com/th/119/classes/method-overloading/
-ใช้ข้อมูลในส่วนนิยาม Overloading Method ทั่วไป
- https://www.geeksforgeeks.org/c-sharp-method-overloading/
-ใช้หาความหมายของการทำ Overloading Method ใน C#
- https://www.w3schools.com/cs/cs_method_overloading.php
-ใช้เป็นตัวอย่างในการสร้าง Overloading Method ใน C#
- https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/member-
-ใช้หาหลักการในการทำ และ ข้อควรระวังในการทำ Method overloading ใน C#
-ใช้เป็นตัวอย่างในการสร้าง Overloading Method ใน C#
Java
- https://www.geeksforgeeks.org/method-overloading-in-java/
-ใช้เป็นตัวอย่างในการสร้าง Overloading Method ใน Java
-ใช้หาคำเรียกการทำ Overloading Method ใน Java
- https://www.programiz.com/java-programming/method-overloading
-ใช้หาวิธีการทำ Overloading Method ใน Java
-ใช้หาความหมายของการทำ Overloading Method ใน Java
- https://www.w3schools.com/java/java_methods_overloading.asp
-ใช้เป็นตัวอย่างในการสร้าง Overloading Method ใน Java
-ใช้หาคำเรียกการทำ Overloading Method ใน Java
-ใช้หาเหตุผลว่าทำไม่ถึงไม่มีการทำ Overloading Method ใน C
-ใช้เป็นตัวอย่างในการสร้าง Overloading Method ใน C
- https://stackoverflow.com/questions/479207/how-to-achievefunction-overloading-in-c
-ใช้หาเหตุผลว่าทำไม่ถึงไม่มีการทำ Overloading Method ใน C
-ใช้หาเหตุผลในการทำ _Generic ใน C
Python
- https://docs.python.org/3/library/functions.html
-ใช้หาBuilt-in Functions, isinstance() ใน Python
- https://www.geeksforgeeks.org/python-method-overloading/
-ใช้หาเหตุว่าทำไม่ถึงไม่รองรับการทำ Overloading Method ใน Python อย่างชัดเจน
-ใช้เป็นตัวอย่างในการสร้าง Overloading Method ใน Python
- https://www.baeldung.com/cs/statically-vs-dynamically-typed-languages
-ใช้หาว่า Python เป็น Statically Typed หรือ Dynamically Typed Languages
Last updated