PDA

View Full Version : مبتدی: مشکل در نوشتن Interface



javady_joon
چهارشنبه 25 آذر 1394, 12:23 عصر
با سلام من در حال خوندن کتاب شس گرا هستم که خیلی بد توضیح داده شده
مثلا نگاه کنید


137475




و سپس در صفحه دوم

137476

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

این کلاس Alive به همراه Interface

using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace Interface
{
abstract class Alive
{
public abstract void breathe();
}
interface IHerbivore
{
void EateGrass();
}
interface ICanivore
{
void MeateEate();
}
interface IReptiles
{
void Crawl();
}
}




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

using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace Interface
{
class Crocodill:Alive,IReptiles,ICanivore
{
public override void breathe()
{
Console.WriteLine("Crocodille is berathing .......");
}
public override void MeateEate()
{
Console.WriteLine("Crocodille is Eatemeat .......");
}


public override void Crawl()
{
Console.WriteLine("Crocodille is crawling .......");
}
}
}

میشه بگید مشکل چیه؟


پیشاپیش تشکر می کنم

ژیار رحیمی
چهارشنبه 25 آذر 1394, 12:52 عصر
دوست گرامی کار مناسبی نیست که شما به جای استفاده از تگ های کد از تصویر آن استفاده کنی
کلاس Alive رو Public کن مشکل حل میشه

javady_joon
پنج شنبه 26 آذر 1394, 10:46 صبح
ضمن تشکر از راهنماییتون
خواستم خود کتاب رو همانطور که نوشته برای دوستان بذارم
چرا نویسنده از abstract استفاده کرد؟

javady_joon
شنبه 28 آذر 1394, 15:50 عصر
التبه من کاری که شما گفتید رو انجام دادم ولی باز مشکل وجود داشت اما در کلاس crocdil کلمه override رو برداشتم کلاس برنامه اجرا شد میشه بگید چرا
ممنون می شم کمکم کنید

r4hgozar
شنبه 28 آذر 1394, 16:37 عصر
سلام.
نگا کن شما داری منبع بدی رو می خونی به نظرم.
کلا باید مفهوم کار abastrac و interface رو متوجه بشی.

مشکل تا اینجا کد شما نیست.
در هنگاهم اجرا اشکا می کیره؟؟ دستورات main رو هم بزارین.

javady_joon
دوشنبه 30 آذر 1394, 18:30 عصر
بله خیلی افتضاح می باشد
دستور main

static void main (string[] args)
{
crocodile x = new crocodile ();
x.eatmeat();

}x.crawl();

r4hgozar
سه شنبه 01 دی 1394, 08:31 صبح
بله خیلی افتضاح می باشد
دستور main

static void main (string[] args)
{
crocodile x = new crocodile ();
x.eatmeat();

}x.crawl();



سلام.
خوب x.crawl چرا بیرون کروشه هست؟ باید داخل بنویسی. یعنی باید داخل تابع main باشه دوست عزیز.