class Temp { interface Future {} class Message { } interface Client { Future request(M request); } interface MessageClient extends Client { Future request(Message request); } abstract class AbstractClient implements MessageClient { } class ConcreteClient extends AbstractClient { public Future request(Message request) { return null; } } }