مفهوم وراثت در OOP چیست
خلاصه
1404/05/24
وراثت (Inheritance) یکی از مفاهیم اساسی در برنامهنویسی شیءگرا (OOP) است که به یک کلاس (فرزند یا زیرکلاس) اجازه میدهد تا ویژگیها و رفتارهای کلاس دیگری (والد یا سوپرکلاس) را ب

وراثت (Inheritance) یکی از مفاهیم اساسی در برنامهنویسی شیءگرا (OOP) است که به یک کلاس (فرزند یا زیرکلاس) اجازه میدهد تا ویژگیها و رفتارهای کلاس دیگری (والد یا سوپرکلاس) را به ارث ببرد. به عبارت سادهتر، یک کلاس جدید میتواند بر اساس یک کلاس موجود ساخته شود و از کدهای موجود استفاده کند، در نتیجه از تکرار کد جلوگیری میشود و سازماندهی بهتری در کد ایجاد میشود.
**مفاهیم کلیدی وراثت:**
* **کلاس والد (Parent Class/Superclass/Base Class):** کلاسی که ویژگیها و رفتارهایش به ارث میرسد.
* **کلاس فرزند (Child Class/Subclass/Derived Class):** کلاسی که از کلاس والد ارث میبرد و میتواند ویژگیها و رفتارهای جدیدی را اضافه کند یا رفتارهای به ارث رسیده را تغییر دهد (override کند).
* **ارث بری (Inheritance):** فرآیند به ارث بردن ویژگیها و رفتارها از کلاس والد به کلاس فرزند.
* **ویژگیها (Attributes/Properties):** متغیرهایی که وضعیت یک شیء را نشان میدهند (مانند نام، سن، رنگ و غیره).
* **رفتارها (Behaviors/Methods):** توابعی که عملیاتی را انجام میدهند که یک شیء میتواند انجام دهد (مانند حرکت، صحبت کردن، محاسبه و غیره).
**مزایای استفاده از وراثت:**
* **قابلیت استفاده مجدد از کد (Code Reusability):** کلاس فرزند میتواند از کدهای کلاس والد استفاده کند، بدون اینکه نیاز باشد آنها را دوباره بنویسد. این امر منجر به کاهش حجم کد و افزایش سرعت توسعه میشود.
* **سازماندهی بهتر کد (Code Organization):** وراثت به سازماندهی منطقیتر کد کمک میکند. کلاسهای فرزند میتوانند بر اساس کلاسهای والد خود، در یک ساختار سلسله مراتبی سازماندهی شوند.
* **گسترشپذیری (Extensibility):** با استفاده از وراثت، میتوان به راحتی قابلیتهای جدیدی را به سیستم اضافه کرد. میتوان کلاسهای فرزند جدیدی را ایجاد کرد که رفتار کلاسهای والد را گسترش دهند یا تغییر دهند.
* **پلیمورفیسم (Polymorphism):** وراثت یکی از ارکان اصلی پلیمورفیسم است. پلیمورفیسم به این معنی است که یک شیء میتواند در شرایط مختلف، رفتارهای متفاوتی از خود نشان دهد. با استفاده از وراثت، میتوان اشیاء مختلفی را ایجاد کرد که همگی از یک کلاس والد ارث بردهاند، اما رفتارهای خاص خود را دارند.
**انواع وراثت:**
* **وراثت تک (Single Inheritance):** یک کلاس فرزند فقط میتواند از یک کلاس والد ارث ببرد.
* **وراثت چندگانه (Multiple Inheritance):** یک کلاس فرزند میتواند از چندین کلاس والد ارث ببرد. (این نوع وراثت در برخی از زبانها مانند جاوا پشتیبانی نمیشود، زیرا میتواند منجر به ابهام شود.)
* **وراثت چند سطحی (Multilevel Inheritance):** یک کلاس فرزند از یک کلاس والد ارث میبرد و سپس یک کلاس فرزند دیگر از آن کلاس فرزند اول ارث میبرد.
**مثال ساده (پایتون):**
```python
class Animal: # کلاس والد
def __init__(self, name):
self.name = name
def speak(self):
print("Sound of animal")
class Dog(Animal): # کلاس
برخی از محصولات شرکت مهندسی آبان رایان البرز
سایر مقالات آموزشی شرکت نرم افزاری آبان رایان البرز :
- کلاس و شی در برنامهنویسی شیءگرا چه مفهومی دارند
- چه تفاوتی بین متغیرهای محلی و سراسری وجود دارد
- مفهوم JSON و کاربرد آن در انتقال داده چیست
- تفاوت بین REST و SOAP در طراحی API چیست
- Nodejs چگونه کار میکند
- تفاوت بین Java و Kotlin در توسعه اپ موبایل چیست
- جاوا اسکریپت چه نقشی در توسعه وب دارد
- زبان Python در چه حوزههایی کاربرد دارد
- تفاوت زبان برنامهنویسی C و C چیست
- Continuous Integration چه مزایایی دارد
- نقش واحد تست Unit Test در توسعه نرمافزار چیست
- خطای منطقی در برنامهنویسی چیست
- چه تفاوتی بین کامپایلر و مفسر وجود دارد
- الگوهای طراحی نرمافزار Design Patterns کداماند
- اصول کدنویسی تمیز Clean Code چیست
- Git چیست و چرا در برنامهنویسی اهمیت دارد