سی شارپ فقط ارث بری یگانه را پشتیبانی می کند. یعنی فقط از یک کلاس پایه می توان ارث بری کرد. البته ارث بری چندگانه را از اینترفیس ها می توان داشت.
با استفاده از کلمه ی کلیدی Base می توان به هر یک از اعضای Public و Protected کلاس Base دسترسی داشت.
با کلمه ی کلیدی new کلاس Child می تواند متدی از کلاس Base را مخفی نماید.
وقتی در متدی از کلاس پیشوند Virtual استفاده می شود یعنی فرزندان این کلاس می توانند این متد را برای خود Override کنند.
متدهای override شده باید دارای نوع برگشتی و پارامترهای مشابه متد اصلی باشند.
ارث بری باعث می شود که کلاس های مشتق شده بتوانند مانند کلاس های پایه ی خود عمل کنند.
نمی توان سازنده ی بدون پارامتر برای Struct تعریف کرد. بنابراین اگر حتماً می خواهید که سازنده ای بدون پارامتر داشته باشید، کلاس تنها انتخاب شماست.{در مقایسه بین انتخاب کلاس و یا انتخاب Struct}
Struct ها دارای Deconstructor نیستند.
در مورد Struct ها ارث بری از یک Struct امکان پذیر نیست اما ارث بری از اینترفیس ها وجود دارد.
هر کلاس یا Struct که از یک اینترفیس ارث ببرد باید همه ی متدهای آن را پیاده سازی نماید.
Struct چون ValueType است در Stack ذخیره می شود و کلاس در Heap
ValueType ها مستقیماً مقدار را در خد نگهداری می کنند و به همین دلیل است که در Stack نگهداری می شوند.
اینترفیس ها برای ایجاد پروتکلی بین کلاس ها هستند. البته در برخی از زبان های برنامه نویسی به جای استفاده از کلمه ی کلیدی اینترفیس از پروتکل استفاده می کنند.
وقتی اینترفیس A از اینترفیس B ارث برده است، کلاسی که از اینترفیس B ارث می برد باید متدهای موجود در هر دو اینترفیس A و B را پیاده سا زی کند.
اینترفیس از نوعRefrenceType است.
تفاوت بین ارث بری از کلاس و ارث برای از اینترفیس را می توان چنین توصیف کرد که در ارث بری از کلاس «است» و «بودن» است و ارث بری از اینترفیس پساده سازی کردن ان است. وقتی کلاس ماشین از کلاس وسایل نقلیه ارث می برد می گوییم ماسین وسیله ی نقلیه است.
نمی توان یک اینترفیس را به صورت Virtual تعریف کرد.
هدف از ایجاد اینترفیس تعیین توانایی هایی است که از کلاس انتظار داریم.
برای متدهای موجود در اینترفیس سطح دسترسی تعریف نمی شود.
اینترفیس تنها نوع برگشتی و پارامترهای متد را مشخص می کند و پیاده سازی آن به عهده ی کلاسی است که از آن مشتق شده است.
از روی یک اینترفیس نمی توان نمونه ایجاد کرد بلکه باید کلاسی آن را پیاده سازی کند.
کلاسی که از یک اینترفیس ارث می برد، در حقیقت فرم و ساختار کلی خود را از آن اینترفیس دریافت کرده است و نحوه ی رفتار و پیاده سازی آن را خود انجام می دهد.