وراثت یا ارث بری (Inheritance) از مفاهیم اساسی برنامهنویسی شیءگراست. هر شیء یک نمونه از یک کلاس است و هر کلاس میتواند از کلاس یا کلاسهای دیگری مشتق شده باشد (خواص متدها یا رویدادهای کلاسهای دیگر را به ارث ببرد). در یک مثال ساده میتوان اتومبیلی را در نظر گرفت که برای جلوگیری از بازنویسی خواص عمومی اتومبیل شامل: چهار چرخ، متدهای حرکت چرخ، متد چرخاندن فرمان، فرمان، بدنه، در و غیره، میتوان یک کلاس پایه از اتومبیل ایجاد کرد سپس مثلاً برای اتومبیل سیتروئن مدل C۵ یک کلاس جدید ایجاد کرده که خواص، متدها و رویدادهای عمومی اتومبیل را داشته باشد و فقط برای خواص، متدها و رویدادهای جدید این اتومبیل کد نوشته شود. این ویژگی باعث صرفهجویی در نوشتن کد و تا حدودی تضمین صحت کد موجود میشود. به عنوان مثال اگر کلاس پایه مشکلی داشته باشد فقط کافی است کلاس پایه تغییر داده شود و در تمامی کلاسهایی که از این کلاس پایه ویژگیای ا به ارث بردهاند این تغییر اعمال خواهد شد
وراثت در برنامه نویسی شبیه وراثت بیولوژیکی است که در آن فرزندان صفاتی را از والدین به ارث میبرند. در برنامهنویسی شیءگرا میتوان با وراثت از کلاس موجود کلاسی را ایجاد کرد که دادهها و متدهای کلاس قبلی را به ارث ببرد. برای فزرند یک کلاس می توان توابع و متغیرهای جدید تعریف کرد یا توابع مربوط به والد را دوباره نویسی (overwrite) نمود
وراثت چندگانه به دلایل زیر در سی شارپ پشتیبانی نمیشود
1- درک آن سخت است.
2- باعث به وجود آمدن اشکالات غیر قابل پیش بینی میشود.
3- debug کردن آنها مشکل است.
به این دلیل است که در سی شارپ یک کلاس نمیتواند دو پدر داشته باشد و این مورد نیز در NET. نیز حذف شده است
بقیه توضیحات رو در لینک زیر پست کردم