What is variance in Scala generics?

Updated May 24, 2026

Short answer

Variance defines subtype relationships in generics.

Deep explanation

Covariance (+T) allows subtyping, contravariance (-T) reverses it, invariance allows no relation.

Real-world example

Used in collections and API design.

Common mistakes

  • Misusing variance annotations.

Follow-up questions

  • Why is List covariant?
  • What is invariance?

More Scala interview questions

View all →