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

زمانی که شما از روی یک کلاس، شئ ای می سازید باید نوع آن کلاس را مشخص کنید یا از کلمه کلیدی var استفاده کنید:

B obj = new B();

زمانی که کلاسی از یک شئ مشتق شده باشد، می توان هنگام تعریف شئ از روی آن کلاس، نوع متغیر را به جای خود کلاس، کلاس وارد قرار داد. برای مثال، در مثال زیر ما یک شئ از روی کلاس C می سازیم:

A obj = new C();

دقت کنید که نوع متغیر obj را از نوع A در نظر گرفتیم، اما شئ ای از نوع C داخل آن ریختیم. دلیل این امر آن است که کلاس C از کلاس A مشتق شده و به نوعی قابل تبدیل به کلاس A می باشد. اما به این نکته توجه داشته باشید، زمانی که نوع متغیر را از نوع کلاس والد در نظر می گیریم، هنگام استفاده از شئ ساخته شده، تنها خصوصیات و رفتارهایی هایی قابل استفاده هستند که در کلاس والد تعریف شده اند. به عنوان مثال، کد زیر صحیح نمی باشد، به این خاطر که Item3 داخل کلاس C تعریف شده و ما تنها به Item1 و Item2 که داخل A تعریف شده اند دسترسی داریم.

A instanceOfC = new C();
instanceOfC.Item3 = "C# Course";

یکی از مهمترین کاربردهای استفاده از نوع داده کلاس والد، مبحث Polymorphism می باشد که در بخش های بعدی با این مفهوم بیشتر آشنا خواهیم شد.

کلاس Object

در کتابخانه دات نت، کلاسی وجود دارد به نام Object یا شئ. در دات نت، کلیه نوع های داده و کلاس ها، چه آنهایی که به صورت دستی می نویسیم و چه آنهایی که در کتابخانه دات نت وجود دارند، از کلاس object مشتق شده اند، به جز کلاس هایی که برای آنها کلاس والد را مشخص کرده ایم. حتی کلاس هایی که برای آنها کلاس والد مشخص شده، باز هم شاخه اصلی زنجیره وراثت به کلاس object ختم می شود. پس به این صورت می گوییم که کلاس object، کلاس پایه ای برای کلیه کلاس های دات نت می باشد. یکسری رفتارها برای کلاس Object تعریف شده اند که در تمامی کلاس ها در دسترس هستند، زیرا کلیه کلاس ها از کلاس object مشتق شده اند. این رفتارها به شرح زیر می باشند:

Equals: این رفتار بررسی می کند که دو شئ با یکدیگر برابر هستند یا خیر.
GetHashCode: این رفتار عددی را برمی گرداند که شناسه شئ ایجاد شده می باشد.
GetType: نوع یا Type شئ را بر میگرداند. این متد را در بخش Reflection بیشتر بررسی خواهیم کرد.
ToString: زمانی که این رفتار را برای یک شئ صدا می زنید، رشته ای مرتبط با آن شئ را بر میگرداند که به صورت پیش فرض Type Name یا نام نوع آن کلاس را بر میگرداند. در بخش Polymorphism با این متد بیشتر آشنا می شوید.

گفتیم زمان تعریف کردن یک شئ، نوع داده والد را به جای خود کلاس برای متغیر در نظر گرفت:

object number = 12;
object name = "Hossein Ahmadi";
object instance = new A();

برچسب: نویسنده: هستی امینی تاريخ: دوشنبه 29 آبان 1396 ساعت: 16:22

صفحه بندی