نمایش نتایج 1 تا 2 از 2

نام تاپیک: مفهوم override در چند ریختی

  1. #1

    مفهوم override در چند ریختی

    با سلام من دارم #C یاد می گیرم و به مطلب چند ریختی رسیدم اما هر چه که می خونم متوجه نمی شم بببینید منت اینجوری فهمیدم که وقتی می خوایم از یک متد چند بار استفاده های گوناگونی کنیم از این روش استفاده می کنیم طبق مثالی که خود مطالب زدن مثلا میان توی کلاس پایه A یک متد تعریف می کنند مثلا

    class A
    {
    public virtual void show()
    {
    console.writeln (" I am first method ");
    }
    }

    انوقت میاد در کلاس مشتق به این شکل می نویسند

    class B : A
    {
    public override void show()
    {
    console.writeline (" I am tow method");
    }
    }

    خوب حالا میان توی Main متد ها رو فذاخونی می کنند که شما استادید دیگه

    void main()
    {
    A str = new A();
    B str2 = new B();
    str.show();
    str2.show();
    console.ReadKey(); // برای خالی نبودن عریضه که خروجی وایسه تا ببینیم
    }

    خوب حالا وقتی برنامه رو اجرا می کنیم دو رشته مورد نظر اجرا میشهاما خوب بدون کلمات کلیدی Override و Virtcual هم برنامه دو رشته رو چاپ می کنه البته با یک warning که این هستالبته اینجا متد نام کلاس ها فرق می کنه




    می خوام بدونم یعنی این دو کلمه فقط برای جلوگیری از این Warning میان وسط؟
    من خیلی تلاش کردم که فرق بود و نبود این دو رو بدونم ولی متاسفانه همه منابع فارسی از روی هم کپی - پیست کردن و مطالب تازه ای برای درک بهتر موضوع ارائه ندادن .این هم یک نمونه دیگر از Warning در این برنامه متغیر ها جواب میدن



    پیشاپیش از کمکتون تشکر می کنم و ممنون میشم که سوای منابع موجود با زبانی ساده تر مفهوم را توضیح دهید.

    آخرین ویرایش به وسیله Mahmoud.Afrad : یک شنبه 19 مهر 1394 در 23:07 عصر

  2. #2

    نقل قول: مفهوم override در چند ریختی

    سلام
    شما کد زیر را بنویسید

    A str = new A();
    A str2 = new B();

    شیء str2 نوعش در هنگام «کامپایل» A هست اما در هنگام «اجرا» نوعش می شه B
    متد virtual باعث می شه متد مربوط به «نوع زمان اجرا» انتخاب بشه اما متد معمولی با توجه به «نوع زمان کامپایل» انتخاب می شه

تاپیک های مشابه

  1. سوال: چند ریختی و تشخیص نحوه تعریف کلاس
    نوشته شده توسط saed2006 در بخش تحلیل و طراحی نرم افزار
    پاسخ: 1
    آخرین پست: سه شنبه 07 اردیبهشت 1389, 11:58 صبح
  2. مبتدی: چند ریختی زمان اجرا و لغو روش
    نوشته شده توسط قله بلند در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 11
    آخرین پست: یک شنبه 29 آذر 1388, 19:17 عصر
  3. سوال: آیا مفهوم چند ریختی در معماری شی گرایی این است؟
    نوشته شده توسط alireza_tavakol در بخش C#‎‎
    پاسخ: 29
    آخرین پست: یک شنبه 01 شهریور 1388, 19:02 عصر
  4. چند ریختی و ارث بری
    نوشته شده توسط fazel-d در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 5
    آخرین پست: پنج شنبه 27 تیر 1387, 01:39 صبح
  5. چرا نمیشه متد استاتیک چند ریختی تعریف کرد؟
    نوشته شده توسط Mahdi Fahmideh در بخش C#‎‎
    پاسخ: 15
    آخرین پست: پنج شنبه 20 مرداد 1384, 14:28 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •