Java用到协变的两个地方:
①如果A是B的父类,即A[]是B[]的父类,则用到A[]的地方可以用B[]代替;
②在重写或者重载的时候,返回值类型不一致是不被允许的,但是在子类中可以以此来重写父类的方法,这就是协变。
PS:但是在泛型中,却不能利用协变:基于上面的①,List<A>和List<B>没有什么关系。
Java用到协变的两个地方:
①如果A是B的父类,即A[]是B[]的父类,则用到A[]的地方可以用B[]代替;
②在重写或者重载的时候,返回值类型不一致是不被允许的,但是在子类中可以以此来重写父类的方法,这就是协变。
PS:但是在泛型中,却不能利用协变:基于上面的①,List<A>和List<B>没有什么关系。