مشخصات مقاله
-
1730
-
0.0
-
3989
-
0
-
0
آموزش نوع خروجی Covariant در Java
آموزش Java – نوع خروجی Covariant
نوع خروجی covariant بدین معنی است که اگر توسعه دهنده بدنه ی متدی از کلاس پدر را در کلاس فرزند بازنویسی کرد، می تواند نوع بازگشتی یا خروجی متد را در کلاس فرزند، بر روی زیرنوعی (subtype) از نوع بازگشتی متد اصلی (بازنویسی شده) تنظیم کند. به عبارت دقیق تر، نوع بازگشتی covariant به شرایطی اشاره دارد که در آن نوع خروجی متد بازنویسی کننده (متدی در که کلاس فرزند override می شود) به نوع مربوط به return type متد بازنویسی شده (متد کلاس پدر) مرتبط می باشد.
قبل از ویرایش 5 بستر اجرا و زبان Java، امکان بازنویسی متد از طریق ویرایش نوع خروجی آن متد وجود نداشت. اما از ویرایش 5 به بعد، این امکان فراهم شده است که کلاس فرزند متدی از کلاس پدر را که نوع بازگشتی آن از جنس non-primitive (غیر اولیه نظیر آبجکت) هست را با ویرایش نوع خروجی بازنویسی نماید.
لازم به ذکر است که نوع خروجی متد بازنویسی شده در کلاس فرزند، به جنس کلاس فرزند نیز تبدیل می شود.
مثال کاربردی از covariant return type
class A{
A get(){return this;}
}
class B1 extends A{
B1 get(){return this;}
void message(){System.out.println("welcome to covariant return type");}
public static void main(String args[]){
new B1().get().message();
}
}
خروجی:
welcome to covariant return type
همان طور که می بینید، نوع بازگشتی متد ()get از کلاس A، از جنس A است اما نوع بازگشتی متد ()get از کلاس B از جنس B است. هر دو متد دارای خروجی از نوع متفاوت هستند با این وجود می بینید که مفهوم بازنویسی متد (method overriding) در مثال بالا به معنای واقعی پیاده سازی شده است. در جاوا به این نمونه کاربرد covariant return type گویند.
آموزش Java – نوع خروجی Covariant
نوع خروجی covariant بدین معنی است که اگر توسعه دهنده بدنه ی متدی از کلاس پدر را در کلاس فرزند بازنویسی کرد، می تواند نوع بازگشتی یا خروجی متد را در کلاس فرزند، بر روی زیرنوعی (subtype) از نوع بازگشتی متد اصلی (بازنویسی شده) تنظیم کند. به عبارت دقیق تر، نوع بازگشتی covariant به شرایطی اشاره دارد که در آن نوع خروجی متد بازنویسی کننده (متدی در که کلاس فرزند override می شود) به نوع مربوط به return type متد بازنویسی شده (متد کلاس پدر) مرتبط می باشد.
قبل از ویرایش 5 بستر اجرا و زبان Java، امکان بازنویسی متد از طریق ویرایش نوع خروجی آن متد وجود نداشت. اما از ویرایش 5 به بعد، این امکان فراهم شده است که کلاس فرزند متدی از کلاس پدر را که نوع بازگشتی آن از جنس non-primitive (غیر اولیه نظیر آبجکت) هست را با ویرایش نوع خروجی بازنویسی نماید.
لازم به ذکر است که نوع خروجی متد بازنویسی شده در کلاس فرزند، به جنس کلاس فرزند نیز تبدیل می شود.
مثال کاربردی از covariant return type
class A{
A get(){return this;}
}
class B1 extends A{
B1 get(){return this;}
void message(){System.out.println("welcome to covariant return type");}
public static void main(String args[]){
new B1().get().message();
}
}
خروجی:
welcome to covariant return type
همان طور که می بینید، نوع بازگشتی متد ()get از کلاس A، از جنس A است اما نوع بازگشتی متد ()get از کلاس B از جنس B است. هر دو متد دارای خروجی از نوع متفاوت هستند با این وجود می بینید که مفهوم بازنویسی متد (method overriding) در مثال بالا به معنای واقعی پیاده سازی شده است. در جاوا به این نمونه کاربرد covariant return type گویند.