شی گرائی (بخش دوازدهم)
در پست قبلی دربارۀ متدهای مجازی در مفهوم چند ریختی کمی توضیح دادم ، در این پست ادامۀ متدهای مجازی رو خدمتتون ارائه میدم
در پست قبلی تیکه کدی رو مثال زدم که وجود کلمۀ کلیدی virtual رو بیان می کرد ، وجود كلمه virtual بيان میکنه كه كلاسهای مشتق شده از اين كلاس میتونن، اين متد (virtual) رو override کنن و به شکل دلخواهی پياده سازی كنیم
به کد زیر دقت کنید
کد PHP:
using System;
public class Line : PointObject
{
public override void Point()
{
Console.WriteLine("I'm a Line.");
}
}
public class Circle : PointObject
{
public override void Point()
{
Console.WriteLine("I'm a Circle.");
}
}
public class Square : PointObject
{
public override void Point()
{
Console.WriteLine("I'm a Square.");
}
}
در کد بالا 3 تا کلاس وجود داره که همشون از کلاس PointObject ارث بری می کنند. هر کدوم از اين كلاس ها دارای متد Point هستند و همشون دارای پيشوند override می باشند.
وجود كلمه كليدی override قبل از نام متد ، اين امكان را بوجود میاره تا كلاس، متد كلاس پايه خود را override كنه و به شکل دلخواهی پياده سازی بشه متدهای override شده بايد دارای مشخصاتی همچون نوع و پارامترهای مشابه متد كلاس پايه باشند.