찾아본 내용 1. 하위 타입에 대한 두가지 규칙 1. 하위 타입은 상위 타입이 선언하는 것과 최소한 동일한 범위의 타입을 수용해야한다. (in) 2. 하위 타입은 상위 타입이 선언하는 것과 최대한 동일한 범위의 타입을 반환해야한다. (out) 2. 공변성 1. 하위 타입(Dog)은 상위 타입(Animal)보다 구체적이므로 최소한 동일한 범위의 타입을 수용할 수 없다. 2. 하위 타입(Dog)은 상위 타입(Animal)보다 구체적이므로 최대한 동일한 범위의 타입을 반환할 수 있다. 따라서 하위 타입에 대해 공변성을 만족하려면 out 에 대해서만 정의 가능 3. 반공변성 1. 하위 타입(Animal)은 상위 타입(Dog)보다 추상적이므로 최소한 동일한 범위의 타입을 수용할 수 있다. 2. 하위 타입(Anim..