مقدمه مفهومی وراثت (Inheritance) یکی از ارکان اصلی برنامه نویسی شیءگرا (OOP) است که به موجب آن یک کلاس (به نام کلاس فرزند) می تواند ویژگی ها و متدهای کلاس دیگر (به نام کلاس والد) را به ارث ببرد و آنها را گسترش یا تغییر دهد. این مفهوم رابطه ’’is-a’’ بین کلاس ها را ایجاد می کند. کاربرد در فناوری اطلاعات در طراحی سیستم های شیءگرا - در ایجاد سلسله مراتب کلاس ها - در استفاده مجدد از کد - در پیاده سازی چندشکلی - در فریمورک های بزرگ مثال های واقعی کلاس ’’ماشین’’ که از ’’وسیله نقلیه’’ ارث بری می کند - کلاس ’’کاربر ویژه’’ که از ’’کاربر معمولی’’ مشتق می شود - سلسله مراتب کامپوننت های UI نقش در توسعه نرم افزار کاهش تکرار کد - ایجاد ساختارهای منطقی - امکان گسترش پذیری - پیاده سازی انتزاع - بهبود قابلیت نگهداری تاریخچه و تکامل مفهوم وراثت از زبان Simula (1967) آغاز شد و در Smalltalk (1972) توسعه یافت. در زبان های مدرن مانند جاوا و سی پلاس پلاس به صورت پیشرفته تری پیاده سازی شده است. تفکیک از مفاهیم مشابه با ’’ترکیب’’ (Composition) که رابطه ’’has-a’’ را ایجاد می کند متفاوت است. همچنین با ’’اینترفیس’’ که فقط قرارداد را تعریف می کند فرق دارد. پیاده سازی در زبان های مختلف در جاوا با کلمه کلیدی extends - در سی پلاس پلاس با : - در پایتون با قرار دادن کلاس والد در پرانتز - در سی شارپ با : چالش ها و ملاحظات سلسله مراتب عمیق - وابستگی های قوی - مشکلات طراحی - تست پذیری - انعطاف پذیری بهترین روش ها استفاده محتاطانه از وراثت چندگانه - اولویت ترکیب بر وراثت - طراحی سلسله مراتب کم عمق - رعایت اصل جایگزینی لیسکوف کاربرد در معماری های مدرن در طراحی فریمورک ها - در الگوهای طراحی - در سیستم های مبتنی بر کامپوننت - در ORMها نتیجه گیری وراثت ابزار قدرتمندی در برنامه نویسی شیءگرا است، اما نیاز به طراحی دقیق دارد تا از ایجاد ساختارهای پیچیده و شکننده جلوگیری شود.
مقدمه مفهومی وراثت (Inheritance) یکی از ارکان اصلی برنامه نویسی شیءگرا (OOP) است که به موجب آن یک کلاس (به نام کلاس فرزند) می تواند ویژگی ها و متدهای کلاس دیگر (به نام کلاس والد) را به ارث ببرد و آنها را گسترش یا تغییر دهد. این مفهوم رابطه ’’is-a’’ بین کلاس ها را ایجاد می کند. کاربرد در فناوری اطلاعات در طراحی سیستم های شیءگرا - در ایجاد سلسله مراتب کلاس ها - در استفاده مجدد از کد - در پیاده سازی چندشکلی - در فریمورک های بزرگ مثال های واقعی کلاس ’’ماشین’’ که از ’’وسیله نقلیه’’ ارث بری می کند - کلاس ’’کاربر ویژه’’ که از ’’کاربر معمولی’’ مشتق می شود - سلسله مراتب کامپوننت های UI نقش در توسعه نرم افزار کاهش تکرار کد - ایجاد ساختارهای منطقی - امکان گسترش پذیری - پیاده سازی انتزاع - بهبود قابلیت نگهداری تاریخچه و تکامل مفهوم وراثت از زبان Simula (1967) آغاز شد و در Smalltalk (1972) توسعه یافت. در زبان های مدرن مانند جاوا و سی پلاس پلاس به صورت پیشرفته تری پیاده سازی شده است. تفکیک از مفاهیم مشابه با ’’ترکیب’’ (Composition) که رابطه ’’has-a’’ را ایجاد می کند متفاوت است. همچنین با ’’اینترفیس’’ که فقط قرارداد را تعریف می کند فرق دارد. پیاده سازی در زبان های مختلف در جاوا با کلمه کلیدی extends - در سی پلاس پلاس با : - در پایتون با قرار دادن کلاس والد در پرانتز - در سی شارپ با : چالش ها و ملاحظات سلسله مراتب عمیق - وابستگی های قوی - مشکلات طراحی - تست پذیری - انعطاف پذیری بهترین روش ها استفاده محتاطانه از وراثت چندگانه - اولویت ترکیب بر وراثت - طراحی سلسله مراتب کم عمق - رعایت اصل جایگزینی لیسکوف کاربرد در معماری های مدرن در طراحی فریمورک ها - در الگوهای طراحی - در سیستم های مبتنی بر کامپوننت - در ORMها نتیجه گیری وراثت ابزار قدرتمندی در برنامه نویسی شیءگرا است، اما نیاز به طراحی دقیق دارد تا از ایجاد ساختارهای پیچیده و شکننده جلوگیری شود.