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

Javaأمثلة حول تعدد الوراثة في جافا

  • المثال الأول
  • المثال الثاني
  • المثال الثالث

المثال الأول

في هذا المثال قمنا بتعريف إثنين إنترفيس A و B:

  • الإنترفيس A يملك دالة إسمها printA().
  • الإنترفيس B يملك دالة إسمها printB().

ثم قمنا بتعريف كلاس إسمه C و قلنا أن C ينفذ A و B.


A.java
public interface A {
 
    void printA();
 
}

B.java
public interface B {
 
    void printB();
 
}

C.java
public class C implements A, B {     // لجميع الدوال التي ورثها Override إذاً يجب أن يفعل B و الإنترفيس A ينفذ الإنترفيس C هنا الكلاس
 
    @Override                 // printA() للدالة Override مجبور أن يفعل C الكلاس
    public void printA() {
        System.out.println("C should Override the method printA()");
    }
 
    @Override                 // printB() للدالة Override مجبور أن يفعل C الكلاس
    public void printB() {
        System.out.println("C should Override the method printB()");
    }
 
}

المثال الثاني

في هذا المثال قمنا بتعريف إنترفيس A يملك دالة إسمها printA().
و إنترفيس B يرث من الإنترفيس A و يملك دالة إسمها printB().

ثم قمنا بتعريف كلاس إسمه C يطبق الإنترفيس B, و بالتالي عليه أن يفعل Override لجميع الدوال التي ورثها.

A.java
public interface A {
 
    void printA();
 
}

B.java
public interface B extends A {
 
    void printB();
 
}

C.java
public class C implements B {        // printB() و printA() للدالتين Override إذاً يجب أن يفعل .B و الذي بدوره يرث من الإنترفيس B يطبق من الإنترفيس C هنا الكلاس
 
    @Override                 // printA() للدالة Override مجبور أن يفعل C الكلاس
    public void printA() {
        System.out.println("C should Override the method printA()");
    }
 
    @Override                 // printB() للدالة Override مجبور أن يفعل C الكلاس
    public void printB() {
        System.out.println("C should Override the method printB()");
    }
 
}

المثال الثالث

في هذا المثال قمنا بتعريف إنترفيس A يملك دالة إسمها printA().
و كلاس B يملك دالة إسمها printB().

ثم قمنا بتعريف كلاس إسمه C يرث من B و ينفذ A.


A.java
public interface A {
 
    void printA();
 
}

B.java
public class B {
 
    void printB() {
        System.out.println("C not need to Override the method printB()");
    }
 
}

C.java
public class C extends B implements A {     // A و ينفذ الإنترفيس B يرث من الكلاس C هنا الكلاس
 
    @Override                            // printA() للدالة Override مجبور أن يفعل C الكلاس
    public void printA() {
        System.out.println("C should Override the method printA()");
    }
 
}