协变与逆变:方向模拟器

选择接口方向和转换,观察编译器为何接受或拒绝。示例中的 Dog : Animal

out
安全地产出更具体对象,再把它当作更一般对象读取。
in
能处理一般对象的消费者,也一定能处理更具体对象。