Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux 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");
    }
 
}

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() هنا سيتم إستدعاء الدالة
    }
 
}

Main.java
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