سلام دوستان. امروز میخوایم در مورد یک مفهوم خیلی مهم توی برنامه نویسی شی گرا صحبت کنیم: متد مجازی. شاید اسمش یکم پیچیده به نظر برسه، اما نگران نباشید، سعی میکنم خیلی ساده و قابل فهم توضیح بدم.
تصور کنید که شما یک ماشین دارید. این ماشین میتونه حرکت کنه، ترمز بگیره و صدا تولید کنه. حالا، شما یک مدل خاص از این ماشین رو دارید، مثلاً یک ماشین مسابقه ای. ماشین مسابقه ای هم میتونه حرکت کنه، ترمز بگیره و صدا تولید کنه، اما شاید صداش با صدای یک ماشین معمولی فرق داشته باشه. متد مجازی دقیقاً به ما کمک میکنه که این تفاوت ها رو توی برنامه نویسی مدیریت کنیم.
به زبان ساده، متد مجازی یک متد توی کلاس پدر هست که میتونه توی کلاس های فرزند دوباره تعریف بشه. این دوباره تعریف شدن به کلاس فرزند اجازه میده که رفتار خاص خودش رو برای اون متد داشته باشه.
برای اینکه بهتر متوجه بشید، به این مثال توجه کنید:
مفهوم | توضیح |
---|---|
کلاس پدر (Parent Class) | مثل همون ماشین اولیه ای که داشتیم. یک کلاس پایه که ویژگی ها و رفتارهای کلی رو تعریف میکنه. |
کلاس فرزند (Child Class) | مثل ماشین مسابقه ای. یک کلاس که از کلاس پدر ارث میبره و میتونه ویژگی ها و رفتارهای کلاس پدر رو تغییر بده یا بهشون اضافه کنه. |
متد مجازی (Virtual Method) | متدی توی کلاس پدر که میتونه توی کلاس فرزند دوباره تعریف بشه. |
Override | به عمل دوباره تعریف کردن متد مجازی توی کلاس فرزند، Override میگن. |
استفاده از متد مجازی چند تا مزیت خیلی مهم داره:
فرض کنید ما یک کلاس به نام `Animal` داریم که یک متد به نام `makeSound()` داره:
class Animal {
public virtual void makeSound() {
Console.WriteLine("صدای یک حیوان");
}
}
class Dog : Animal {
public override void makeSound() {
Console.WriteLine("هاپ هاپ");
}
}
class Cat : Animal {
public override void makeSound() {
Console.WriteLine("میو میو");
}
}
// حالا استفاده میکنیم:
Animal animal = new Animal();
animal.makeSound(); // خروجی: صدای یک حیوان
Dog dog = new Dog();
dog.makeSound(); // خروجی: هاپ هاپ
Cat cat = new Cat();
cat.makeSound(); // خروجی: میو میو
همونطور که میبینید، کلاس `Dog` و `Cat` متد `makeSound()` رو از کلاس `Animal` ارث بردن و اون رو Override کردن تا صدای خاص خودشون رو تولید کنن. این یه مثال ساده از قدرت متد مجازی هستش.
متد مجازی یک ابزار خیلی قدرتمند توی برنامه نویسی شی گرا هست که به ما کمک میکنه برنامه های انعطاف پذیرتر و قابل توسعه تری بنویسیم. با استفاده از متد مجازی میتونیم رفتارهای مختلفی رو برای کلاس های فرزند تعریف کنیم و از مزایای پلی مورفیسم بهره مند بشیم.
امیدوارم این توضیحات براتون مفید بوده باشه. موفق و پیروژ باشید!
متد مجازی، برنامه نویسی شی گرا، پلی مورفیسم، Override، کلاس پدر، کلاس فرزند، انعطاف پذیری، قابلیت توسعه
امتیاز شما به این مطلب
امتیاز: 5 از 5 (مجموع 1 رای)
اولین نفری باشید که در مورد این مقاله نظر می دهید!
techfeed.ir© 2024 All rights reserved