چندریختی polymorphism (overLoading - Override)
فرآیند نمایش یک شکل در شکلهای متعدد را چندریختی میگوییم. یک نمونهاش ارثبری است. وقتی سه کلاس Employee - Consumer -woman میآیند از کلاس Person ارثبری میکنند یعنی کلاس Person در این سه ریخت (سه کلاس) ظاهر شده. به سه شکل دیگر ظاهر شده. این میشود نمونهی ارثبری. (منبع)
قابلیت چندریختی (polymorphism) یعنی جاوا دو قابلت دارد:
- فراخوانی متدی یکسان با پارامترهای مختلف (overloading). (یعنی متد الف با آرگومان خودش را می نویسیم و بعد زیرش دوباره متد الف را با آرگومان دیگری و با بدنه ی دیگری می نویسیم. نام این متدها یکسان است. و زمان فراخوانی آنها به صورت خودکار بنا بر جنس آرگومان ورودی یکی از این دو اجرا می شود.)
- بازنویسی بدنه ی متد (overriding) در کلاس فرزند،
ربط اوررایدینگ و اورلودینگ به چندریختی
در overriding کلاس فرزند همان کار کلاس پدر را میخواهد به سبک خودش انجام دهد. مثلا کلاس دانشجو که از کلاس انسان ارثبری کرده است متد «بیدار شدن» را اورراید میکند و بهجای بیدار شدن در ساعت ۷ صبح در ساعت ۶ بیدار میشود! OverLoading هم احتمالا اینگونه به چند ریختی مربوط میشود که مثلا در همان مثال خودمان یک دانشجو در روزهای مختلف ساعتهای مختلف بیدار میشود. مثلا اگر متد بیدار شدن آرگومان نداشته باشد ساعت ۶ بیدار شود. اگر «روز هفته» را داشته بسته به روز هفته ساعت ۶ یا ۹ بیدار شود! اگر آرگومان «امتحان» داشته باشد ساعت ۵ بیدار شود. به این ترتیب این شخص در چند ریخت حاضر شد.)
-------------------------------
نمونه overLoading:
method a(){} method a(String s){} method a(String s , String b){} method b(){}
نمونه OverRiding:
class AA { method a(){ //do something } } class BB extends AA{ @Override method a(){ // do somethign else!!!!!!! } }