Tehnologije & rješenja
ponedjeljak, 10. listopad 2022., 15:25
Dvorana D
45'
Tema je kovarijanca ne-generičkih parametara u sedam OOP jezika: C++, Eiffel, Java, C#, Scala, Kotlin, Swift (redoslijed je od najstarijeg do najmlađeg).U primjeru se kovarijanca pokušava primijeniti kod dva povezana para nadklasa/podklasa.U konkretnom slučaju to su klase Zivotinja/Krava i Zivotinjska_hrana/Kravlja_hrana.U jednoj proceduri klase Zivotinja nalazi se parametar klase Zivotinjska_hrana.Možemo li (u gore navedenim jezicima) u podklasi Krava napraviti nadjačanu proceduru koja koristi klasu Kravlja_hrana, umjesto klase Zivotinjska_hrana?Jedan jezik imao je tu mogućnost od početka (kraj 80-ih), ali je ta mogućnost omogućavala runtime grešku, što je donekle riješeno tek 2014.No postoji još jedan jezik (među gore navedenim jezicima) koji to omogućava.Napomena: upotreba generičkih parametara (i njihova kovarijanca) nije "pravo" rješenje (to je rješenje, ali s velikim praktičnim manama).