2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Objective-C:ssä polymorfismi voidaan saavuttaa kutsumalla alaluokan menetelmiä käyttämällä emoluokan osoitinta. Tarkemmin sanottuna voit määrittää osoittimen yläluokkaan ja määrittää sitten aliluokan esiintymän tälle osoittimelle. Tällä tavalla, vaikka käyttäisit emoluokan osoitinta menetelmän kutsumiseen, aliluokan metodia kutsutaan itse asiassa.
On huomattava, että Objective-C on dynaaminen kieli ja sen polymorfismin toteutus eroaa jonkin verran muista olio-ohjelmointikielistä. Muissa staattisesti tyypitetyissä kielissä polymorfismi toteutetaan yleensä periytymisen ja menetelmän ohituksen kautta. Objective-C:ssä sen dynaamisen luonteen vuoksi polymorfismi voidaan ratkaista suorituksen aikana objektin tyypin perusteella.
Lisäksi Objective-C:n polymorfismi voidaan saavuttaa myös protokollien avulla. Protokolla määrittelee joukon menetelmiä, jotka jokaisen protokollaa seuraavan luokan on toteutettava. Protokollia käyttämällä sama menetelmä voidaan toteuttaa eri luokissa, jolloin saavutetaan polymorfismi.
Yleisesti ottaen Objective-C:n polymorfismi voidaan saavuttaa käyttämällä yläluokan osoitinta kutsumaan alaluokan menetelmää tai käyttämällä protokollaa. Sillä on joitain eroja muiden olio-ohjelmointikielten polymorfismitoteutukseen verrattuna, mikä näkyy pääasiassa Objective-C:n dynaamisissa ominaisuuksissa.