چند ریختی(Polymorphism)
چند ریختی قابلیتی است که یک شیء می تواند فرم های مختلفی داشته باشد. به عبارت دیگر اشیاء می توانند در موقعیت های مختلف رفتار های متفاوتی بروز دهند.
تنها راه دسترسی به یک شیء فقط ار طریق یک Reference Variable(متغیر از نوع ارجاع) می باشد.Reference Variable فقط از یک نوع(Type) می تواند باشد. نوع آن یکبار اعلان می شود و بعد از آن دیگر قابل تغییر نیست.
یک نمونه پر کاربرد از چند ریختی زمانی رخ می دهد که یک ارجاع به کلاس پایه استفاده می شود برای اشاره به شیء کلاس فرزند. همه اشیاء در جاوا چند ریختی هستند زیرا از کلاس Object ارث بری می کنند.
مثال زیر را در نظر بگیرید :
کلاس Deer بصورت چند ریختی می باشد زیرا ارث بری چندگانه دارد. در این باره موارد زیر صدق می کند :
- · A Deer IS-A Animal
- · A Deer IS-A Vegetarian
- · A Deer IS-A Deer
- · A Deer IS-A Object
وقتی که ما یک متغیر از نوع ارجاع(Reference Variable) از کلاس Deer اجاد می کنیم موارد زیر صادق می باشد:
همه Reference Variable های بالا(d,a,v,o), به یک شیء از کلاس Deer در heap اشاره می کنند.
نتیجه گیری :
* یک Reference Variable می تواند به یک شیء دیگر انتساب داده شود(به شرط اینکه final نباشد).
* نوع Reference Type تعیین می کند که چه متد هایی با یک شیء قابل فراخوانی(Invoke) هستند.
* یک Reference variable می تواند اشاره کند به یک شیء دیگر به شرط اینکه همنوع خودش باشد.
* یک Reference variable می تواند اعلان شود مانند نوع کلاس یا یک نوع Interface.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.