مشخصات مقاله
-
2907
-
0.0
-
7284
-
0
-
0
آموزش java – شرح تفاوت بین overloading و overriding در Java
آموزش java – شرح تفاوت بین overloading و overriding در Java
تفاوت های زیادی بین (بازنویسی بدنه ی متد در کلاس فرزند) method overriding و (فراخوانی متدی با نام یکسان اما هر بار با پارامترهای مختلف) method overloading در جاوا وجود دارد که در جدول زیر آن ها را برای شما لیست می کنیم:
No.
Method Overloading
Method Overriding
1
از overloading برای افزایش خوانایی کد برنامه استفاده می شود.
Overriding به توسعه دهنده این امکان را می دهد تا بدنه ی متدی که قبلا در کلاس پدر تعریف شده را داخل کلاس فرزند یا مشتق شده از کلاس پدر، بازنویسی کند.
2
Overloading در سطح کلاس میزبان متدها پیاده سازی می شود.
Overriding در دو کلاس که رابطه ی IS-A (inheritance) دارند (یکی پدر و دیگری فرزند است) ، پیاده سازی می شود.
3
در overloading، پارامترهای ارسالی به هر متد بایستی متفاوت باشد.
در overriding، پارامتر ارسالی به متد در کلاس پدر و فرزند باید یکی باشد.
4
Overloading مثال عینی از پیاده سازی مفهوم polymorphism در زمان اجرای برنامه می باشد.
Overriding مثال عینی از پیاده سازی مفهوم polymorphism (انجام عملیات مختلف باتوجه به آبجکت میزبان متد) در زمان اجرای برنامه می باشد.
5
در جاوا، overloading را نمی توان به صرف تغییر نوع خروجی متد (Return type) پیاده سازی کرد. در واقع نوع بازگشتی متد می تواند یکسان بوده یا کاملا متفاوت باشد. اما تغییر پارامترهای ارسالی به متد ضروری است.
در overriding نوع بازگشتی و خروجی (Return type) متد بایستی یکسان یا covariant باشد.
مثال کاربردی از overload کردن متد در Java
class OverloadingExample{
static int add(int a,int b){return a+b;}
static int add(int a,int b,int c){return a+b+c;}
}
مثال کاربردی از override کردن متد در Java
class Animal{
void eat(){System.out.println("eating...");}
}
class Dog extends Animal{
void eat(){System.out.println("eating bread...");}
}