بنام خدا : سومین بخش از سری آموزش شی گرایی در جاوا رو با مبحث polymorphism ادامه میدیم .
polymorphism یا چند ریختی در حقیقت تکنیکی که توسط اون میتونیم یک آبجکت رو با فرم ها یا شکلهای مختلف داشته باشیم . این عمل زمانی اتفاق میفته که یک کلاس از کلاس دیگه ای ارث بری داشته باشه و آبجکت رو از نوع کلاس فرزند و با نوع ارجاع والد تعریف کنیم . در این صورت اگه متدی هم نام و یکسان در هردو کلاس والد و فرزند وجود داشته باشه آبجکت ما متد کلاس فرزند رو اجرا میکنه .
توی مثال زیر یک آبجکت از نوع کلاس Nokia و با نوع ارجاع Phone ساختیم . وقتی از این آبجکت متد ring رو فراخوانی میکنیم , متد کلاس Nokia فراخوانی میشه .
public class Phone { public void ring() //متد کلاس پایه یا والد { System.out.println ("Phone Is Ringing"); } } public class Nokia extends Phone { public void ring() //متد کلاس فرزند { System.out.println ("Nokia Phone Is Ringing"); } } public class Test { public static void main (String args[]) { Phone obj1 = new Phone(); // ارجاع و آبجکت از نوع کلاس والد Phone obj2 = new Nokia(); // ارجاع از نوع والد ولی آبجکت از نوع کلاس فرزند obj1.ring(); obj2.ring(); } }