ارث بری چندسطحی (Multilevel Inheritance)
ارث بری چندسطحی یعنی کلاس ها زنجیری ارث ببرند. کلاس نوه از فرزند می گیرد، و فرزند از والد می گیرد. بنابراین کد کمتر تکرار می شود و ساختار شفاف تر می ماند.
تعریف ساده ارث بری چندسطحی
در این الگو، یک کلاس از کلاسی مشتق می شود که خودش قبلاً مشتق شده است. پس ویژگی ها و متدها پله پله منتقل می شوند.
نمونه منبع W3Schools
// Base class (parent)
class MyClass {
public:
void myFunction() {
cout << "Some content in parent class.";
}
};
// Derived class (child)
class MyChild: public MyClass {
};
// Derived class (grandchild)
class MyGrandChild: public MyChild {
};
int main() {
MyGrandChild myObj;
myObj.myFunction();
return 0;
}
نکته: متد myFunction() در کلاس والد تعریف شده است. اما نوه آن را مستقیم صدا می زند.
کی به درد می خورد؟
- وقتی چند سطح نقش داری، مانند مدرسه و کلاس ها.
- وقتی می خواهی ویژگی ها مرحله ای منتقل شوند.
هشدار: سطح های زیاد، خوانایی را سخت می کند. بنابراین تا حد لازم استفاده کن.
سه گام عملی
- یک والد بساز و متدی ساده تعریف کن.
- کلاس فرزند با
class Child: public Parentبساز. - کلاس نوه بساز و متد والد را صدا بزن.
برای پایه ها، بخش ارث بری را بخوان. همچنین برای مقایسه، صفحه ارث بری چندگانه را ببین.
جمع بندی سریع
- ارث بری چندسطحی، انتقال پله ای است.
- نوه از فرزند و والد می گیرد.
- تکرار کد کمتر می شود.
- زیاده روی خوانایی را کم می کند.