Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

Javaمثال حول طريقة إستدعاء دالة من الـسوبر كلاس في جافا

تذكر

لا تنسى وضع الكلمة @Override قبل إسم الدالة التي ورثها الـ Subclass في الأصل من الـ Superclass و لكنه قام بتعريفها من جديد.


الآن لنفترض أننا قمنا بتعريف كلاس إسمه A يحتوي على دالة إسمه print().
بعدها قمنا بإنشاء كلاس إسمه B يرث من الكلاس A و يحتوي على دالة إسمها print() أيضاً, بالإضافة إلى دالة إسمها printBoth() تستدعي الدالة print() الموجودة في A و تستدعي الدالة print() الموجودة في B بطريقتين.

بعدها سنقوم بإنشاء الكلاس Main لتجربة الكود.

A.java
public class A {
public void print() {
System.out.println("This is print() method from the class A");
}
}
public class A { public void print() { System.out.println("This is print() method from the class A"); } }

B.java
public class B extends A { // A يرث من الكلاس B هنا قلنا أن الكلاس
// قبلها, مع وضع جملة مختلفة في دالة الطباعة @Override لذلك وضعنا A هنا قمنا بتعريف نفس الدالة الموجودة في الكلاس
@Override
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 B extends A { // A يرث من الكلاس B هنا قلنا أن الكلاس // قبلها, مع وضع جملة مختلفة في دالة الطباعة @Override لذلك وضعنا A هنا قمنا بتعريف نفس الدالة الموجودة في الكلاس @Override 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() هنا سيتم إستدعاء الدالة } }

Main.java
public class Main {
public static void main(String[] args) {
B b = new B(); // منه printBoth() من أجل إستدعاء الدالة B هنا قمنا بإنشاء كائن من الكلاس
b.printBoth(); // هنا قمنا باستدعائها
}
}
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
This is print() method from the class B This is print() method from the class B This is print() method from the class A