الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الفرق بين استخدام method overload and overrid

بدأه الطالب المثابر في 4 نوفمبر 2010 · 6 رد · 938 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اخوتي الاعزاء هل من الممكن توضيح الفرق بين استخدام وطرق استخدام كل من method overload and overrid

امشكله مو قادر افهم الفرق بينهم حي يتشابهان تشابه كبير

فلدي كودان عملتهما بـ overload

الاب parent

package project2;

public class Parent {

   private int age;
   private double salary;

    public Parent() {
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public double getSalary() {
        return salary;
    }


    // overload
    public void addValue(String val)
    {
    System.out.println("I am in Parent."+val);
    }
    public static void main(String[] args) {
      Parent p = new Parent();  



    }
}

والابن Child

package project2;

public class Child extends Parent {

    private String education;

    public Child() {
    }
    public void addValue()
    {
    String defaultStr = "DefaultValue";
    System.out.println("I am in Child."+defaultStr);
    }

    public static void main(String[] args) {
        Child child = new Child();
        child.addValue();

    }
}
1
#2

Overriding : معناه انا داله متواجده فى الكلاس البارنت و نفس الداله بنفس الاسم والمدخلات arguments

ولكن فى الكلاس الابن subclass فنقول هذه overridded Method

كما فى حاله المثال السابق ...

اما Overloading : فتعنى تكرار داله معينه بنفس الاسم ولكن قد يختلف ايا من عدد المدخلات arguments

او النوع return type ..

اتمنى ان اكون اوضحت الفرق بشكل جيد

وبالتوفيق اخى النثابر

no-pain-no-gain.jpg

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك

#3
The expendable كتب:

Overriding : معناه انا داله متواجده فى الكلاس البارنت و نفس الداله بنفس الاسم والمدخلات arguments

ولكن فى الكلاس الابن subclass فنقول هذه overridded Method

كما فى حاله المثال السابق ...

اما Overloading : فتعنى تكرار داله معينه بنفس الاسم ولكن قد يختلف ايا من عدد المدخلات arguments

او النوع return type ..

اتمنى ان اكون اوضحت الفرق بشكل جيد

وبالتوفيق اخى النثابر

توضيحا لكلام اخى احمد

هو بالنسبه للــOverriding

فهو شرحها بطريقه كويسه

لكن الداله علشان اقول انها Override بتكون نفس الداله بالظبط الموجوده فى الـ Parent class موجوده فى الـ subClass ولكن بتقوم بعمل شىء مختلف

انما بالنسبه للـ Overloading

معذره كلامك نصه صح والنص الاخر غلط

علشان اقول ان الداله OverLoading

لازم تكون بنفس الاسم دا شرط اساسى

مع هذا الشرط

نأتى الى شروط لازم توافرها احداهما بعد التحقق من ان الدلتين بنفس الاسم

1- نوع المتغيرات

2- عدد المتغيرات

3- ترتيب المتغيرات

مع ملاحظه ان الـ return datatype لا يؤثر فى عمليه الـ overloading

مثال على هذه الجزئيه فقط

	public void sum(int x, int y) {
    	System.out.println((x + y));
	}

	public int sum(int x, int y) {
    	return (x + y);
	}

هذا الكود لا يعتبر Overloading بل هو اساسا خطأ لان هناك دالتين متعرفين بنفس الاسم

اتمنى ان يكون الموضوع اتضح اكثر

ورجاء اخى الكرريم ان تقوم بالمذاكره من كتاب والبدايه من الاول لان كدا مش هتعرف تعمل حاجه

لانك تسأل فى الاساسيات

وانت تريد ان تدخل على البرمجه ولا تعلم ما هى الاساسيات

انصحك بالتعلم من كتاب Java How to program او من كتاب Introduction to java

Software Developer
Mahmoudkelany.com


 

#4

شكراً جزيلاً لكم اخوتي الكرام

شرحك اخي احمد جميل ورائع وشرح اخي محمود ايضاً جميل ورائع

لكن لم افهمها بشكل جيد

شكراً لك اخي محمود على النصيحه والكتب وانا قد بدائة في تعلم الاساسيات ولكن اريد ان اواكب كما قلت لك دورة العمل

هل من مثال عملي لو تكرمتو لكلا الحالتين حتى استطيع ان افهمها وياليت لو كانت في مثال واحد وسوفا اكون شاكر لكم ومقدر

#5
الطالب المثابر كتب:

شكراً جزيلاً لكم اخوتي الكرام

شرحك اخي احمد جميل ورائع وشرح اخي محمود ايضاً جميل ورائع

لكن لم افهمها بشكل جيد

شكراً لك اخي محمود على النصيحه والكتب وانا قد بدائة في تعلم الاساسيات ولكن اريد ان اواكب كما قلت لك دورة العمل

هل من مثال عملي لو تكرمتو لكلا الحالتين حتى استطيع ان افهمها وياليت لو كانت في مثال واحد وسوفا اكون شاكر لكم ومقدر

ازاى اخى الكريم بتقول ان شرحنا جميل ورائع

و فى نفس الوقت مش فهمتها جيدا

الكلام متناقض تماما mad.gifmad.gifmad.gif

Software Developer
Mahmoudkelany.com


 

#6

مشكور اخى محمود على التعديل لأنه ادق<br><br>

Mahmoud Kelany كتب:

ازاى اخى الكريم بتقول ان شرحنا جميل ورائع

و فى نفس الوقت مش فهمتها جيدا

الكلام متناقض تماما mad.gifmad.gifmad.gif

  لا مش متناقض ولا حاجه بس الراجل عايز امثله عندك الامثله اهى بس ارجع تانى واقولك ذاكر من المرجع بالترتيب

وانا بنيابه عن نفسى هدى لنفسى +1 لأنى زهقت من +2 الى مكتوبه029.gif دى عايز اغير حتى لو بالمينص

تفضل

مثال على overloading



void myMethod(int x ,float y )

{}

void myMethod(float x ,float y , int z )

{}

}

  class A{

مثال على overriding



void myMethod(int x ,float y )

{}

}

class B extends A

{

void myMethod(int x , int y)

{}

}

  class A{

تم تعديل هذه المشاركة بواسطة The expendable في 6 نوفمبر 2010 في 01:40

2

no-pain-no-gain.jpg

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك

#7
Mahmoud Kelany كتب:

ازاى اخى الكريم بتقول ان شرحنا جميل ورائع

و فى نفس الوقت مش فهمتها جيدا

الكلام متناقض تماما mad.gifmad.gifmad.gif

شكراً لك اخي محمود فعلاً شرحكم رائع وجميل بس انا قلت ما فهمته كتطبيق عملي ارجو معذرتي

مواضيع مشابهة