Est-il un moyen de garantir une interface étend une classe en Java?

Supposons que j'ai la situation suivante:

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

public interface Flier {
  public void fly();
}

Est-il un moyen que je peux garantir que toute classe qui implémente Flier doit également s'étendre Vehicle? Je ne veux pas faire Flier une classe abstraite parce que je veux être en mesure de mélanger un peu d'autres interfaces de la même manière.

Par exemple:

//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() { ... }
}
  • Les Interfaces d'étendre les Interfaces. (Abstrait) Classes (partiellement) de mettre en œuvre des Interfaces et de l'étendre à d'autres classes.
  • Essayez ma suggestion, tu ne peux pas compiler MySpecialMachine sans s'étend de Véhicule!
InformationsquelleAutor math4tots | 2013-01-01