1- چرا فیلد bank به صورت abstract تعریف شده ولی Amount خیر؟
public decimal Amount { get; set; }
public abstract string bank { get; }
سلام،
Amount یک پراپرتی در نظر گرفته شده که در زمان ساخت آبجکت، setter صدا زده میشه و مقدار دهی میشه. این موضوع براساس ویدیوهایی که از قبل دیده بودین.
پراپرتی bank داخل کلاسها override میشه و براساس هر کلاس یک مقداری داخلش قرار میگیره. زمانیکه که مقدار پیش فرضی برای property ندارید و باید براساس subclassها مقداردهی بشه و مقدارش براساس هر subclass یک مقدارمتفاوتیه از abstract میشه استفاده کرد. یه وقتیم هست مقدار پیشفرض واسه پراپرتی در نظر میگیری ولی میخواید subclassها هم بتونن override کنن(hide نشن) میتونید از virtual استفاده کنید. اگر هم نمیخواید override بشه از virtual و abstract استفاده نمیکنید.
public class Car
{
// Manufacturer is a read-only property - only a get accessor is needed:
public abstract string Manufacturer { get; }
}
public class IranKhodro : Car
{
public override string Manufacturer
{
get
{
return "Peugeot";
}
}
}
public class Saipa : Car
{
public override string Manufacturer
{
get
{
return "Pride";
}
}
}