الان شاید برات سؤال پیش بیاد که «چه زمانی» و «چرا» ارث‌بری سازنده‌ها مفیده.
دلیل شماره‌ی یک: اطمینان از مقداردهی کلاس پایه.
در مثال قبلی‌مون، کلاس پایه‌ی Person ویژگی‌هایی مثل name و age داره که باید با فراخوانی base(name, age) مقداردهی بشن.
با این کار، مطمئن می‌شیم این فیلدها قبل از اجرای ادامه‌ی سازنده‌ی Employee به‌درستی مقداردهی شدن، و از تکرار کد جلوگیری می‌کنیم.
منطق مقداردهی name و age داخل کلاس Person متمرکز شده.
اگر قرار بود این مقداردهی جداگانه توی هر کلاس فرزند انجام بشه، باعث تکرار کد و احتمال بروز خطا می‌شد.
و اگر بعداً لازم می‌شد منطق مقداردهی تغییر کنه، نگهداری اون کد سخت‌تر و پرخطاتر می‌شد.
دلیل بعدی، حفظ «ناورایی» یا همون **invariant**‌هاست.
سازنده‌ی کلاس پایه می‌تونه بررسی‌های خاصی مثل اعتبارسنجی یا محدودیت‌ها رو اجرا کنه.
مثلاً اگر کلاس Person بررسی می‌کرد که مقدار age منفی نباشه، همه‌ی کلاس‌های فرزند هم به طور خودکار از اون منطق استفاده می‌کردن.
و بعد می‌رسیم به قابلیت گسترش‌پذیری (Extensibility).
کلاس‌های فرزند می‌تونن فرآیند مقداردهی رو گسترش بدن و پارامترها و فیلدهای خودشون رو هم اضافه کنن،
در حالی که همچنان از سازنده‌ی کلاس پایه برای فیلدهای مشترک استفاده می‌کنن.
پس می‌بینی که این ویژگی واقعاً کاربردیه — هم باعث صرفه‌جویی در زمان و حجم کد می‌شه،
و هم باعث می‌شه در پروژه‌های پیچیده‌تر درک بهتری از روند کار داشته باشی. ---