PDA

View Full Version : مفهوم تعریف یک متغییر از نوع interface



ali_mnkt
چهارشنبه 10 آبان 1391, 23:45 عصر
با سلام

فرض کنید یک interface داریم به نام interface1 و یک کلاس به نام class1 از این اینترفیس ارث بری کرده .

خوب مفهوم کد زیر چیه ؟


interface1 variable=new class1()

مگه نه این که اینترفیس ها برای این هستند که قالبی برای کلاس های دیگه باشند و کلاس ها رو مجبور کنند که بر اساس اون قالب طراحی شوند ؟ پس چرا می تونیم یک متغییر از نوع اینترفیس تعریف کنیم و مقدارش هم یک کلاسی هست که از خودش به ارث رسیده !!!!

PhoenixNet
پنج شنبه 11 آبان 1391, 00:21 صبح
سلام

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



class Program
{
static void Main(string[] args)
{
Console.WriteLine("1-Man \n 2-Woman");
int userInput = Console.Read();
Human who;
if (userInput == 1)
{
who = new Man();
}
else
{
who = new Woman();
}
}

interface Human
{
string Name { get; set; }
string Age { get; set; }
}

public class Man : Human
{
public string Name { get; set; }
public string Age { get; set; }
public string Suit { get; set; }
}

public class Woman : Human
{
public string Name { get; set; }
public string Age { get; set; }
public string Skirt { get; set; }
}
}

ali_mnkt
پنج شنبه 11 آبان 1391, 00:39 صبح
مرسی از راهنماییت . در اصل سایت code project از این مفهوم برای پیاده سازی الگوی state در design patern استفاده کرده . اما کدهاش نامفهوم هست
این آدرس مقالش هست . آیا می تونی یک توضیحی بدی که چکار کرده ؟

http://www.codeproject.com/Articles/38962/State-Design-Pattern