شی گرائی (بخش دوازدهم)
در پست قبلی دربارۀ متدهای مجازی در مفهوم چند ریختی کمی توضیح دادم ، در این پست ادامۀ متدهای مجازی رو خدمتتون ارائه میدم
 
در پست قبلی تیکه کدی رو مثال زدم که وجود کلمۀ کلیدی 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 شده بايد دارای مشخصاتی همچون نوع و پارامترهای مشابه متد كلاس پايه باشند.