+2 امتیاز
قبل در برنامه نویسی توسط (7.0هزار امتیاز)
برچسب گذاری دوباره قبل توسط
override و overload چه تفاوتی با هم دارند و هر کدام چه کاربردی دارند؟

2 پاسخ

+2 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

در زبان های برنامه نویسی شي گرا، Method overriding قابلیتی است که در آن یک کلاس فرزند می تواند پیاده سازی خاص خود را از متدهای کلاس پدر داشته باشد و در زمان اجرا آن پیاده سازی بجای پیاده سازی پدر استفاده شود:

class A {
    public void echo(String msg) {
        System.out.println("echo "+msg);
    }
}
 
public class B extends A {
    public void echo(String msg) {
        System.out.println("echo -> "+msg);
    }
}

A a = new A();
a.echo("hi");// echo hi

B b = new B();
b.echo("hi");// echo -> hi

در زبان های برنامه نویسی مختلف، Method overloading قابلیتی است که امکان تعریف چند متد با یک نام در یک کلاس (یا ...) ولی با تعداد و نام پارامترهای متفاوت (و همچنین در بعضی زبان ها مقدار بازگشتی متفاوت) را می دهد:

class A {
    public void echo(String msg) {
        System.out.println("echo "+msg);
    }

    public void echo(int msg) {
        System.out.println("echo "+msg);
    }

    public void echo(String msg , int count) {
        for (int i = 0; i < count; i++) {
            System.out.println("echo "+ msg + " "+i);
        }
    }
}

a.echo("hi");// echo hi
a.echo(2);// echo 2
a.echo("hi" , 2);// echo hi 1 ...

 

+1 امتیاز
قبل توسط (1.6هزار امتیاز)
Overload یعنی چند متد هم نام با امضاء های (نوع ورودی ها، و نوع خروجی ها) مختلف در یک کلاس یا یک object  هستند اما Override یعنی فرزند متدهای ارث بری شده از پدر را تغییر دهد.
قبل توسط (7.0هزار امتیاز)
آیا در همه زبان های برنامه نویسی این تفاوت به همین شکل می باشد؟ یا تنها در زبان جاوا به این صورت است؟
قبل توسط (1.6هزار امتیاز)
در زبان های .NET که به این شکله، اما جاوار رو نمی دونم!!
قبل توسط (28 امتیاز)
+1
در بسیاری زبان های برنامه نویسی مانند c و c++ از این قانون تبعیت می کنند . این قانون یک قانون ANSI شده است .

سوالات مشابه

+1 امتیاز
1 پاسخ 692 بازدید
+1 امتیاز
1 پاسخ 1.4هزار بازدید
+3 امتیاز
1 پاسخ 1.9هزار بازدید
0 امتیاز
4 پاسخ 1.8هزار بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط ali-nb (10 امتیاز)
0 امتیاز
0 پاسخ 668 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط kashi (7.2هزار امتیاز)
0 امتیاز
1 پاسخ 130 بازدید
...