متین تلخابی
متین تلخابی
خواندن ۳ دقیقه·۴ ماه پیش

سری OOP قسمت ششم (Inheritance)

خوب خوش آمدین به قسمت ششم از سری شیء گرایی که مربوط به ارث بری شیء ها از هم دیگست



ارث بری به صورت کلی یعنی اینکه رفتار ها و ویژگی های یه کلاس (بهش می گن مادر)رو به یه کلاس دیگه
(بهش میگن فرزند) انتقال بدیم

ویژگی های ارث بری به صورت کلی چیه :

  1. کد تکراری کمتر :
    خوب مشخصه اگه یه کلاس از یه کلاس دیگه ارث ببره دیگه لازم نیست برای کلاس مشتق (همون فرزند) بیای ویژگی ها و متد های کلاس پایه (همون مادر) رو استفاده کنی
  2. سازماندهی بهتر :
    چون کلاس ها به صورت سلسه مراتبی می شن سازماندهی و مدیریت راحت تره
  3. توسعه پذیری :
    زیر کلاس رو که اضافه می کنیم راحت تر می شه توسعش داد (واضحه به مولا)
    اگه خواستین کامل تر این مبحث رو بخونین می تونید این پست رو هم بخونید
https://virgool.io/@KMmatin/%D8%A7%D8%B5%D9%88%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-maintainable-%D9%87%D8%B3%D8%AA%D9%86-%DA%86%DB%8C%D9%87-pedowvehetyn

یه چند تا مثال هم میزنیم و کارو جمع می کنیم
(مثال Javascript بالا توی عکس هست ^_^)
این یه مثال برای زبان پایتون :

  • کلاس Person:کلاس Person به عنوان یک کلاس پایه (Base class) تعریف شده است که دارای دو ویژگی name و age است.
    متد __init__ سازنده کلاس است که این دو ویژگی را مقداردهی اولیه میکند.
    متد display اطلاعات مربوط به نام و سن فرد را نمایش میدهد.
کلاس Employee:کلاس Employee از کلاس Person ارثبری میکند. این یعنی Employee تمام ویژگیها و متدهای کلاس Person را به ارث میبرد.
در سازنده کلاس Employee (__init__)، از super().__init__(name, age) استفاده میشود تا سازنده کلاس پایه (Person) فراخوانی شود و ویژگیهای name و age مقداردهی اولیه شوند.
کلاس Employee دارای ویژگیهای اضافی employee_id و position است که مخصوص یک کارمند هستند.
متد display در کلاس Employee بازنویسی شده است تا علاوه بر اطلاعات پایه، اطلاعات مربوط به employee_id و position را نیز نمایش دهد. در اینجا از super().display() استفاده میشود تا ابتدا متد display کلاس پایه فراخوانی شود و سپس اطلاعات اضافی نمایش داده شوند.
مثال استفاده:یک شیء از کلاس Person ایجاد شده و اطلاعات آن نمایش داده میشود.
یک شیء از کلاس Employee ایجاد شده و اطلاعات آن نمایش داده میشود که شامل اطلاعات پایه (از کلاس Person) و اطلاعات اضافی (از کلاس Employee) است.

اینم یه مثال برای زبان /p>

کلاس Person:کلاس Person به عنوان یک کلاس پایه (Base class) تعریف شده است که دارای دو ویژگی name و age است.
متد سازنده (constructor) کلاس Person این دو ویژگی را مقداردهی اولیه میکند.
متد display اطلاعات مربوط به نام و سن فرد را به کنسول چاپ میکند.
کلاس Employee:کلاس Employee از کلاس Person ارثبری میکند (با استفاده از کلمه کلیدی extends). این یعنی Employee تمام ویژگیها و متدهای کلاس Person را به ارث میبرد.
در سازنده کلاس Employee (constructor)، از super(name, age) استفاده میشود تا سازنده کلاس پایه (Person) فراخوانی شود و ویژگیهای name و age مقداردهی اولیه شوند.
کلاس Employee دارای ویژگیهای اضافی employeeId و position است که مخصوص یک کارمند هستند.
متد display در کلاس Employee بازنویسی شده است تا علاوه بر اطلاعات پایه، اطلاعات مربوط به employeeId و position را نیز به کنسول چاپ کند. در اینجا از super.display() استفاده میشود تا ابتدا متد display کلاس پایه فراخوانی شود و سپس اطلاعات اضافی چاپ شوند.
مثال استفاده:یک شیء از کلاس Person ایجاد شده و اطلاعات آن چاپ میشود.
یک شیء از کلاس Employee ایجاد شده و اطلاعات آن چاپ میشود که شامل اطلاعات پایه (از کلاس Person) و اطلاعات اضافی (از کلاس Employee) است.




اینم قسمت بعدی :

https://virgool.io/@KMmatin/%D8%B3%D8%B1%DB%8C-oop-%D9%82%D8%B3%D9%85%D8%AA-%D9%87%D9%81%D8%AA%D9%85-%DA%86%D9%86%D8%AF%D8%B1%DB%8C%D8%AE%D8%AA%DB%8C-polymorphism-yocczop4jcih

اگه خواستید به کل سری اصول شیء گرایی دسترسی داشته باشید:

https://virgool.io/@KMmatin/%D8%A7%D8%B5%D9%88%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B4%DB%8C%D8%A1-%DA%AF%D8%B1%D8%A7-xse873qxggs4



خوب برای این پست کافیه
اگه خودت نکته ای رو میشناسی که من اشاره نکردم توی کامنت بگو
امیدوارم این پست به دردتون خورده باشه
موفق و پیروز باشید ...

ان شاء الله راهی که میریم ختم بشه به ظهور سریعتر آقا امام زمان...

object oriented programmingاصول برنامه نویسی شیء گراpythoninheritanceoop
برنامه‌نویس Back End مسلط به زبان‌های TailwindCSS، JavaScript، Python و فریم‌ورک Django. مشتاق یادگیری و پیشرفت
شاید از این پست‌ها خوشتان بیاید