اگر نمخواستیم که در کلاس vehicle پیاده سازی متد مربوط به interface را abstract تعریف کنیم آنوقت به چه شکلی باید تعریف میکردیم؟
سلام،
باید داخل کلاس implement اش میکردید یعنی کلمه abstract رو نمیذاشتید و بدنه ی متد رو همونجا تعریف میکردید.
محسن موحد۱۰ دی ۱۴۰۱، ۱۰:۰۲
خب مشکل اینه دقیقا نمیدونم باید چه چیزی بنویسم که جواب مثل فیلم بشه در نهایت.
اومدم توی خود کلاس vehicle کد زیر رو نوشتم اما اتفاقی که افتاد به تعداد خونههای آرایه همین عبارت چاپ شد و اصلا به کلاسهای car , student , boat نرفت و متدهای اونها رو اجرا نکرد
public void move()
{
Console.WriteLine("test");
}
حمیدرضا جلیلی۱۰ دی ۱۴۰۱، ۱۰:۲۰
اگر بخواید داخل subclassها هم پیاده سازی کنید دراین صورت چون داخل کلاس parent یعنی Vehicle پیاده سازی شده متدهای همنام داخل فرزندان hide میشه.
واسه پیاده سازی چندریختی یک راهش مثل ویدیو عمل میکنید و از abstract method استفاده میکنید و دیگری از طریق override کردن متد.
محسن موحد۱۰ دی ۱۴۰۱، ۱۱:۲۲
ممنون override کردم درست شد
حمیدرضا جلیلی۱۰ دی ۱۴۰۱، ۱۱:۵۴
البته در این مثال راه اصولی و منطقیش کدیه که استاد به روش abstract نوشتن.
ممنون میشم، تایید پاسخ صحیح رو بزنید تا تاپیک از حالت پیگیری خارج بشه.