ataturk1925

چن ریختی از طریق وراثت

ataturk1925 ۱۳۹۴/۱۱/۲۷ 48 مباحث عمومی برنامه‌نویسی

درود


استادان من تو این مبحث چن ریختی از طریق وراثت مشکل دارم یعنی اصلا نمیفهم چیه میشه لطفا یه توضیح اساسی بدین تو نت هرچی گشتم در موردش اصلا مطلبی پیدا نکردم ممنون.

پاسخ‌ها به این تاپیک
امیر
امیر
۱۳۹۴/۱۱/۲۹
سلام بخش آموزش اصول برنامه نویسی آقای مرادی در همین سایت رو نگاه کنین به صورت کامل و جامع توضیح داده شده اونجا ....
stack programer
stack programer
۱۳۹۴/۱۱/۲۷

سلام،پلی مورفیسم (چند ریختی) یعنی کلاس که شما تعریف کرده اید،برای انواع اب جکت های مختلف رفتار خاصی براش تعریف کردی، مثلا یک کلاس بایک متد داری که ورودی ان اینتجر است،اگه شما بیا برا ی حالتی که ورودی مثلا دابل باشه یا حتی رشته،یا اگه پیشرفته تر بشه یک شی دیگه مثل یک شی پوش باتن، این کلاس اصلاحا گفته شده که پلی مورفیسم است.این کلاس چند شکلی خوانده می شه برای ابجکت های مختلف شکل های مختلفی از خود بروز می دهد.مثل متد زیر :


getLiesOfPoliticians(){ //do Something } getLiesOfPoliticians(Politician politician){ //do Something } getLiesOfPoliticians(Politician politician, Year year){ //do Something } getLiesOfPoliticians(*PushButton){ //do Something }

وراثت هم مثل این است ،من یک سوپر کلاس یا کلاس والد دارم با یک سری پروپرتی،و متد،می خواهم یک کلاس جدید زیرکلاس یا کلاس فرزند تعریف کنم.چه کاری است من دوباره این متد های تکراری را داخل کلاس فرزند بیارم،بهتره بگم کلاس ام از کلاس والد ارث برده واین سرعت و قدرت برنامه نویسی شی گرایی است/مثال کد زیر


Class Politician{ int mDisHonestyLevel; public Politician(int dishonestyLevel){ mDishonestyLevel = dishonestyLevel; } } //Inheritance : All Politicians are disHonest. //Some Politicians have extra attributes Class DonaldTrump extends Politician{ int mIdiotnessLevel; public DonaldTrump(int disHonestyLevel, int idiotnessLevel){ super(disHonestyLevel); mIdiotnessLevel = idiotnessLevel; } } Class BillClinton extends Politician{ int mLyingLevel; public BillClinton(int disHonestyLevel, int lyingLevel){ super(disHonestyLevel); mLyingLevel = lyingLevel; } }

اخرین نکته ممکنه یک متد یا یک پروپرتی داخل کلاس والد واسه کار ما خوب نباشه می توانی داخل کلاس فرزند دوباره ان را اورراید کنی ،.ویژگی که این وراثت داره خیلی سرعت توسعه را بالا می بره. اخر کار فرض کن شما چند ریختی را برای کلاس والد ساختی با وراثت این ویژگی به کلاس فرزند هم می رسد به همین راحتی. تو یک جمله اگه بخوام خلاصه کنم،این جمله را باید بگم Inheritance refers to using the structure and behavior of a superclass in a subclass. Polymorphism refers to changing the behavior of a superclass in the subclass.