Junior — Middle
Тавзеҳ диҳед дар бораи консепсияи усулҳои виртуалӣ дар забони C# ва нақши онҳо дар иҷрои полиморфизм.
sobes.tech AI
Ҷавоб аз AI
ใน C# เมธอดเสมือน (virtual methods) คือเมธอดที่ประกาศด้วยคำสำคัญ virtual ซึ่งสามารถถูกเขียนทับ (override) ในคลาสที่สืบทอดมาได้ นี่เป็นฐานสำหรับการดำเนินการ polymorphism — ความสามารถในการเรียกใช้เมธอดของคลาสที่สืบทอดผ่านการอ้างอิงไปยังคลาสพื้นฐาน
เมื่อเมธอดถูกประกาศเป็น virtual การเรียกใช้เมธอดจะถูกกำหนดในช่วงเวลารันไทม์ (การเชื่อมโยงแบบไดนามิก) ไม่ใช่ในช่วงเวลาคอมไพล์ ซึ่งช่วยให้วัตถุสามารถแสดงพฤติกรรมที่แตกต่างกันขึ้นอยู่กับประเภทที่แท้จริงของมัน
ตัวอย่าง:
class Animal {
public virtual void Speak() {
Console.WriteLine("สัตว์ส่งเสียง");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("เห่าเห่า");
}
}
Animal a = new Dog();
a.Speak(); // จะแสดง "เห่าเห่า"
ในที่นี้ ถึงแม้ว่าตัวแปร a จะมีชนิดเป็น Animal แต่เมธอด Speak() ที่ถูกเขียนทับในคลาส Dog จะถูกเรียกใช้ เนื่องจากเป็นเมธอดเสมือน