قابلیت استفادهء مجدد از یک کد در زبان برنامه نویسی شئ گرایی از ویژگی های قابل توجه آن است. یک کلاس می تواند اعضای عمومی را از کلاس دیگر را به ارث ببرد. توارث اجازه می دهد کلاس جدیدی شامل کلیه داده ها و توابع کلاس (های) پیاده سازی شود. کلاس موجود را کلاس پایه (base) و کلاس جدید که اعضای کلاس پایه را به ارث می گیرد را کلاس مشتق شده (derived) می نامند.
مثال. فرض کنید یک کلاس پایه به نام Vehicle برای وسایل نقلیه داریم. وسیله نقلیه می تواند ماشین، تراکتور، قایق و هواپیما را شامل شود که ممکن است هر یک از آنها احتیاج به اطلاعات یا توابع اضافی داشته باشند. بنابراین می توان برای هر کدام کلاس های فرعی را تعریف کرد که خواص کلاس Vehicle را به ارث می برند علاوه براین که دارای فیلدهای جدید دیگری هم هستند.
اگر کلاس ویژگی های تنها یک کلاس را به ارث ببرد وارثت منفرد(single inheritance) و اگر از چند کلاس به ارث گرفته شود وارثت چندگانه (multiple inheritance) نامیده می شود.
ارث از کلاس پایه ممکن است به صورت عمومی، خصوصی یا محافظت شده باشد. این مشخصه های دسترسی تعیین می کنند کلاس های مشتق شده می توانند به اعضای عمومی و محافظت شده کلاس پایه دسترسی پیدا کنند یا خیر. تنها وراثت عمومی است که با مفهوم توارث تطبیق دارد. دو فرم دیگر کمتر استفاده می شوند.