تفاوت کلیدی - Superclass در مقابل Subclass
در برنامه نویسی شی گرا (OOP)، سیستم با استفاده از اشیاء مدل می شود. این اشیاء با استفاده از یک کلاس ایجاد می شوند. کلاس یک طرح یا توضیح برای ایجاد یک شی است. ایجاد شی نیز به عنوان نمونه سازی شی شناخته می شود. هر شی در حال ارتباط با اشیاء دیگر است. یک برنامه یا نرم افزار را می توان با استفاده از برنامه نویسی شی گرا توسعه داد. وراثت یک مفهوم اصلی در OOP است. قابلیت استفاده مجدد کد را بهبود می بخشد. به جای اجرای یک برنامه از ابتدا، اجازه می دهد تا ویژگی ها و متدهای کلاس موجود را به یک کلاس جدید به ارث ببرند. به مدیریت بیشتر برنامه کمک می کند. Superclass و Subclass دو اصطلاحی هستند که به وراثت مربوط می شوند. این مقاله به تفاوت بین Superclass و Subclass می پردازد. تفاوت اصلی بین Superclass و Subclass این است که Superclass کلاس موجود است که کلاس های جدید از آن مشتق می شوند در حالی که Subclass کلاس جدیدی است که ویژگی ها و متدهای Superclass را به ارث می برد.
سوپرکلاس چیست؟
در Inheritance، کلاس موجود که کلاس های جدید از آن مشتق شده اند به عنوان Superclass شناخته می شود. به عنوان کلاس والد یا کلاس پایه نیز شناخته می شود.
انواع مختلف وراثت وجود دارد. با استفاده از مثال های زیر نشان داده شده است. A B و C را به عنوان کلاس در نظر بگیرید.
شکل 01: انواع وراثت
شکل 02: وراثت ترکیبی
طبق نمودارهای بالا، Superclasses در هر نوع ارثی متفاوت است. در وراثت تک سطحی، A Superclass است. در وراثت چندسطحی، A سوپرکلاس برای B و B سوپرکلاس برای C است. در وراثت سلسله مراتبی A، سوپرکلاس برای هر دو B و C است. در وراثت های چندگانه، هر دو A و B برای C ابرکلاس هستند.
وراثت ترکیبی ترکیبی از وراثت های چند سطحی و چندگانه است. در نمودار سمت چپ، A سوپرکلاس برای B است، C و B، C سوپرکلاس برای D هستند. در نمودار سمت راست، A سوپرکلاس برای B و B، D سوپرکلاس برای C هستند.
به برنامه زیر که در جاوا نوشته شده است مراجعه کنید.
شکل 03: برنامه وراثت در جاوا
طبق برنامه فوق، کلاس A دارای متدهای sum() و sub() است. کلاس B متد multiply() دارد. کلاس B در حال گسترش کلاس A است. بنابراین، ویژگی ها و متدهای کلاس A توسط کلاس B قابل دسترسی هستند. بنابراین، کلاس A Superclass است. نوع مرجع کلاس B برای ایجاد شی در نظر گرفته می شود. بنابراین، تمام متدها مانند sum()، sub() و multiply() توسط شی قابل دسترسی هستند. اگر از نوع مرجع Superclass برای ایجاد شی استفاده شود، اعضای کلاس B قابل دسترسی نیستند. به عنوان مثال، A obj=new B(); بنابراین، مرجع Superclass نمی تواند متد multiply() را فراخوانی کند زیرا آن متد متعلق به کلاس B است.
Subclass چیست؟
طبق نمودارهای بالا، زیر کلاس ها از هر نوع ارثی متفاوت است. در Single Heritance، B زیر کلاس است. در وراثت چند سطحی، B زیر کلاس A و C زیر کلاس B است.در وراثت سلسله مراتبی B و C زیر کلاس های A هستند. در وراثت های چندگانه، C زیر کلاس A و B است.
در وراثت هیبریدی، نمودار سمت چپ، B و C زیر کلاس های A هستند. D زیر کلاس B و C است. در نمودار سمت راست، B زیر کلاس A است. C زیر کلاس است. از B و D.
طبق برنامه Inheritance بالا، کلاس B در حال گسترش کلاس A است. بنابراین، تمام ویژگی ها و متدهای کلاس A توسط کلاس B قابل دسترسی هستند. کلاس B کلاس جدیدی است که از کلاس A به ارث می برد. زیر کلاس همچنین به عنوان کلاس فرزند یا کلاس مشتق شده نیز شناخته می شود. کلاس B متد ضرب () دارد و همچنین می تواند به متدهای sum() و sub() کلاس A با استفاده از وراثت دسترسی داشته باشد.
شباهت بین Superclass و Subclass چیست؟
هر دو مربوط به وراثت هستند
تفاوت بین Superclass و Subclass چیست؟
Superclass vs Subclass |
|
هنگام پیادهسازی وراثت، کلاس موجود که کلاسهای جدید از آن مشتق شدهاند Superclass است. | هنگام پیاده سازی وراثت، کلاسی که ویژگی ها و متدها را از Superclass به ارث می برد، Subclass است. |
مترادف | |
Superclass به عنوان کلاس پایه، کلاس والد شناخته می شود. | Subclass به عنوان کلاس مشتق شده، کلاس فرزند شناخته می شود. |
کارکرد | |
یک سوپرکلاس نمی تواند از ویژگی ها و روش های زیر کلاس استفاده کند. | یک زیر کلاس می تواند از ویژگی ها و روش های Superclass استفاده کند. |
وراثت تک سطحی | |
یک سوپرکلاس وجود دارد. | یک زیر کلاس وجود دارد. |
وراثت سلسله مراتبی | |
یک سوپرکلاس وجود دارد | زیر کلاس های زیادی وجود دارد. |
ارث چندگانه | |
سوپرکلاس های زیادی وجود دارد. | یک زیر کلاس وجود دارد. |
خلاصه - Superclass در مقابل Subclass
وراثت یک مفهوم OOP است. این اجازه می دهد تا با استفاده از ویژگی ها و متدهای یک کلاس موجود توسط یک کلاس جدید قابل دسترسی باشد. کلاس ارثی Superclass است و کلاس مشتق شده Subclass است. تفاوت بین Superclass و Subclass در این است که Superclass کلاس موجود است که کلاس های جدید از آن مشتق می شوند در حالی که Subclass کلاس جدیدی است که ویژگی ها و متدهای Superclass را به ارث می برد.
دانلود PDF Superclass vs Subclass
می توانید نسخه PDF این مقاله را دانلود کنید و طبق یادداشت نقل قول برای اهداف آفلاین از آن استفاده کنید. لطفاً نسخه PDF را از اینجا دانلود کنید تفاوت بین Superclass و Subclass