Sometimes I see a class implements interfaces A and B, but A has already extended B, any reasons behind this ?
For example, the AbstractInterruptibleChannel class.
public abstract class AbstractInterruptibleChannel
implements Channel, InterruptibleChannel
But InterruptibleChannel extends Channel already:
public interface InterruptibleChannel
extends Channel