Javaمثال حول طريقة إستدعاء دالة من الـسوبر كلاس في جافا
تذكر
لا تنسى وضع الكلمة قبل إسم الدالة التي ورثها الـ Subclass في الأصل من الـ Superclass و لكنه قام بتعريفها من جديد.
الآن لنفترض أننا قمنا بتعريف كلاس إسمه A
يحتوي على دالة إسمه print()
.
بعدها قمنا بإنشاء كلاس إسمه B
يرث من الكلاس A
و يحتوي على دالة إسمها print()
أيضاً, بالإضافة إلى دالة إسمها printBoth()
تستدعي الدالة print()
الموجودة في A
و تستدعي الدالة print()
الموجودة في B
بطريقتين.
بعدها سنقوم بإنشاء الكلاس Main
لتجربة الكود.
public class A { public void print() { System.out.println("This is print() method from the class A"); } }
public class B extends A { // A يرث من الكلاس B هنا قلنا أن الكلاس // قبلها, مع وضع جملة مختلفة في دالة الطباعة @Override لذلك وضعنا A هنا قمنا بتعريف نفس الدالة الموجودة في الكلاس public void print() { System.out.println("This is print() method from the class B"); } // هنا قمنا بتعريف دالة مهمتها فقط إستدعاء الدوال الموجودة بداخلها public void printBoth() { print(); // B الموجودة في الكلاس print() هنا سيتم إستدعاء الدالة this.print(); // B الموجودة في الكلاس print() هنا سيتم إستدعاء الدالة super.print(); // A الموجودة في الكلاس print() هنا سيتم إستدعاء الدالة } }
public class Main { public static void main(String[] args) { B b = new B(); // منه printBoth() من أجل إستدعاء الدالة B هنا قمنا بإنشاء كائن من الكلاس b.printBoth(); // هنا قمنا باستدعائها } }
سنحصل على النتيجة التالية عند التشغيل.
This is print() method from the class B This is print() method from the class B This is print() method from the class A