Rumah  >  Artikel  >  Java  >  Kovarian, Invarian dan Kontravarian: Bagaimanakah Hubungan Subjenis Berubah?

Kovarian, Invarian dan Kontravarian: Bagaimanakah Hubungan Subjenis Berubah?

DDD
DDDasal
2024-11-12 06:07:01660semak imbas

Covariance, Invariance, and Contravariance: How Do Subtype Relationships Transform?

Memahami Kovarian, Invarian dan Kontravarian

Memahami selok-belok kovarian, invarian dan kontravarian adalah penting untuk menguasai perhubungan jenis dalam pengaturcaraan.

Apakah Itu?

Pada dasarnya, istilah ini menerangkan cara perhubungan antara jenis dan subjenis berubah. Mari kita pertimbangkan senario di mana kita mempunyai dua jenis, A dan B, dan fungsi transformasi f. Katakan ≤ menandakan hubungan subjenis (dengan A ≤ B menunjukkan bahawa A ialah subjenis B).

  • Kovarian: f ialah kovarian jika A ≤ B membayangkan f(A) ≤ f(B).
  • Kontravarian: f adalah kontravarian jika A ≤ B membayangkan f(B) ≤ f(A).
  • Invarian: f adalah invarian jika tiada syarat di atas berlaku.

Contoh dalam Java

Mari kita terokai beberapa contoh Java untuk menjelaskan konsep ini: