Liittymät (interface) kuvailevat luokkien tai tietueiden toiminnallisuuden eli määrittelevät mitä metodeita, ominaisuuksia, indeksereitä ja tapahtumia niillä tulee olla. Liittymät eivät tarjoa toteutusta mainituille jäsenille vaan se jää luokan tai tietueen tehtäväksi. Liittymät määritellään interface-avainsanalla.
interface IVirheenTallentaja
{
void TallennaVirheenTiedot(string viesti);
}
Liittymän toteuttaminen tapahtuu kuten periytyminen
public class EmailVirheenTallentaja : IVirheenTallentaja
{
// toteuttaa liittymän metodin
public void TallennaVirheenTiedot(string viesti)
{
// lähetä virhe sähköpostiin
}
}
Jos luokka periytyy toisesta luokasta ja toteuttaa liittymän, tulee ensin merkitä perittävä luokka ja sen perään toteutettavat liittymät
// luokka, joka periytyy luokasta OmaLuokka ja toteuttaa liittymat ILiittyma1 ja ILiittyma2
public class JokuLuokka : OmaLuokka, ILiittyma1, ILiittyma2
{
}
Liittymä | Abstrakti luokka | |
---|---|---|
Periytyminen | Luokka voi toteuttaa useita liittymiä | Luokka voi periytyä (suoraan) vain yhdestä luokasta |
Suojausmääreet | Kaikki liittymän jäsenet ovat julkisia (public) | Jäsenille voi antaa suojausmääreet |
Jäsenien toteutus | Jäsenille ei voi antaa toteutusta | Jäsenille voi antaa toteutuksen ja periytyvä luokka voi ylikirjoittaa sen tarvittaessa |
Jäsenien lisääminen | Lisätyt jäsenet pitää lisätä jokaiseen toteuttavaan luokkaan | Jäsenelle voi tehdä oletustoteutuksen, jolloin periviä luokkia ei tarvitse muokata |
Kentät ja vakiot | Ei voi määritellä | Voi määritellä |