In Java, you can do the following :
public interface IEngine{}
public interface ICoolEngine extends IEngine{}
public interface Car
{
IEngine getEngine();
What you're doing is completely OK.
I'd prefer to put it this way:
public interface IEngine { }
public interface ICoolEngine extends IEngine { }
public interface ICar {
T getEngine();
}
public interface ICoolCar extends ICar { }
I used generics because as you used an annotation I guessed you're working on Java 5+