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

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

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

المثال الأول

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

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

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


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

B.java
public interface B {
void printB();
}
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()");
}
}
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();
}
public interface A { void printA(); }

B.java
public interface B extends A {
void printB();
}
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()");
}
}
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();
}
public interface A { void printA(); }

B.java
public class B {
void printB() {
System.out.println("C not need to Override the method printB()");
}
}
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()");
}
}
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()"); } }