Extending from two classes

In Java, a class can only extend from one superclass (i.e., it can only have one direct parent class). This means that if you want to extend from two classes, you need to use inheritance in one of the following ways:

  1. Use multiple inheritance: In this case, one class extends from the other two classes. This is not allowed in Java because it can lead to the "diamond problem", where a subclass inherits conflicting implementations of a method from its two superclasses.
// NOT ALLOWED IN JAVA
public class C extends A, B {  // syntax error
    // ...
}
  1. Use single inheritance and implement interfaces: In this case, one class extends from one class and implements the other class as an interface. This is allowed in Java because an interface does not have any implementation, so there is no risk of the "diamond problem".
public class C extends A implements B {
    // ...
}
  1. Use single inheritance and delegate methods: In this case, one class extends from one class and has instance variables for the other class(es). The subclass can then delegate the methods it needs to the instance variables.
public class C extends A {
    private B b;
    private C c;

    // ...
}

Keep in mind that these are just basic examples, and you may need to handle other issues such as constructor inheritance and method conflicts in your actual implementation.