接口A定義以下ide
public interface A<T extends A<T>> {.net
T add();
} 1 2 3 4 5 說明:A接口只有一個add方法,返回泛型T。T的聲明有些饒<T extends A<T>>。code
A接口的實現類B繼承
public class B implements A<B> {接口
[@Override](https://my.oschina.net/u/1162528) public B add() { return null; }
} 1 2 3 4 5 6 7 8 注意,此處類B裏的add方法返回類型B。也就是說,接口A裏聲明的方法時並不知道子類型B的存在,經過繼承和泛型,能夠放返回值動態的適配子類型,這一切都要歸功於<T extends A<T>>class