چند شکلی فراخوانی یا Polymorphism :
اگر بخواهیم که دو متد ، مشخصه ی تعریف یکسانی داشته باشند با استفاده از کلمه کلیدی new کار می کنیم که کامپایلر پیغام خطا ندهد .
class Class1 {
public string name() {…}
}
class Class2 : Class1 {
new public string name () {…}
}
کلمه کلیدی virtual می گوید که این اولین کلاس متدی بنام name است . در سی شارپ متدها به صورت پیش فرض virtual نیستند.
با توجه به توضیحات بالا متدها در چند شکلی فراخوانی بهتر است بصورت زیر استفاده شود با فرض اینکه بخواهیم متد name در کلاس Class1 اولین متد name ما فرض شود :
class Class1 {
public virtual string name() {…..}
}
class Class2 : Class1 {
new public string name () {…..}
}
به فراخوانی بالا چند شکلی فراخوانی یا Polymorphism گفته می شود .