PDA

View Full Version : سوال: مشکل در تعریف کلاس



ITJennifer
جمعه 14 بهمن 1390, 15:08 عصر
ILicenseInfo info = new licenseClass();


پیاده سازی اینترفیس توسط کلاس مشخصه یعنی اینکه متدهای اینترفیس باید در کلاس باشه اما کد بالا چه معنی داره؟ یعنی اینکه کلاسی میسازیم که متدهای اینترفیس رو داشته باشه؟

massar
شنبه 15 بهمن 1390, 01:14 صبح
سلام
چیزی که باید در نظر داشته باشید اینه که استفاده از اینترفیس در این مورد فرقی با استفاده از یک کلاس نداره، به این مفهوم که یک ابجکت از نوع یک کلاس میتونه توسط تمام کلاس های فرزند اون کلاس instantiate بشه. حجم مموری که این ابجکت میگیره به اندازه ی سایز کلاس فرزنده ولی شما فقط به متد ها و متغیر های کلاس والد دسترسی دارید. پیشنهاد میکنم یه مقدار در مورد اینترفیس ها در #c و همینطور مفهوم ارث بری در زبان های شی گرا مطالعه کنید.

gwbasic
شنبه 15 بهمن 1390, 01:26 صبح
کد بالا یعنی شما یک شی از کلاس licenseClass‌ ساخته اید. این شی مطمئنا شامل تمام خصوصیات این کلاس می شود چون از جنس این کلاس می باشد. اما وقتی این شی را به متغیر info که از جنس ILicenseInfo هست نسبت می دهید. شما فقط به اعضایی (شامل خصوصیات و متدها و .. ) از این شی دسترسی دارید که در interface معرفی کردی اید. در اصل شما از زاویه دید interface به شی نگاه می کنید. دقت کنید که ماهیت شی از جنس کلاستان هست و تغییری نمی کنید.