بنام خدا : سومین بخش از سری آموزش شی گرایی در جاوا رو با مبحث 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();
    }
}