Gibt es eine Möglichkeit zu garantieren, eine Schnittstelle erweitert eine Klasse in Java?

Angenommen ich habe folgende situation:

public abstract class Vehicle {
  public void turnOn() { ... }
}

public interface Flier {
  public void fly();
}

Gibt es eine Möglichkeit, dass ich kann garantieren, dass jede Klasse, die Flier muss auch verlängern Vehicle? Ich will nicht Flier eine abstrakte Klasse, denn ich möchte in der Lage sein zu mischen und ein paar andere Schnittstellen in einer ähnlichen Weise.

Zum Beispiel:

//I also want to guarantee any class that implements Car must also implement Vehicle
public interface Car {
  public void honk();
}

//I want the compiler to either give me an error saying
//MySpecialMachine must extend Vehicle, or implicitly make
//it a subclass of Vehicle. Either way, I want it to be
//impossible to implement Car or Flier without also being
//a subclass of Vehicle.
public class MySpecialMachine implements Car, Flier {
  public void honk() { ... }
  public void fly() { ... }
}

InformationsquelleAutor der Frage math4tots | 2013-01-01

Schreibe einen Kommentar