hvilke fordele/ulemper er der mellem interfaces og arv
Nedenstående eksempel er taget fra http://www.eksperten.dk/spm/75774 og omhandler bøger og skilte, som begge kan læses. Udfra eksemplet i ovenstående link er dette lavet med et interface (Læsbar):class Bog implements Læsbar
{
....
String getTekst()
{
Heri føres det læsbare materiale over i en string
}
....
}
class Skilt implements Læsbar
{
....
String getTekst()
{
Heri føres det læsbare materiale over i en string
}
....
}
class Læser
{
void læsNoget( Læsbar kilde )
{
String detLæste = kilde.getTekst();
}
}
Men kunne man ikke sagtens løse samme problemstilling ved hjælp af arv? I det tilfælde kunne man bruge LæsbarObjekt som superklasse for subklasserne Bog og Skilt som beskrevet nedenfor:
class Bog extends LæsbarObjekt
{
....
String getTekst()
{
Heri føres det læsbare materiale over i en string
}
....
}
class Skilt extends LæsbarObjekt
{
....
String getTekst()
{
Heri føres det læsbare materiale over i en string
}
....
}
class Læser
{
void læsNoget( LæsbarObjekt kilde )
{
String detLæste = kilde.getTekst();
}
}
Udover at eksemplet med arv rent forståelsesmæssigt måske ikke er helt smart (valget af superklase til Skilt og Bog), hvad er så egentlig fordelen ved f.eks. at bruge arv i forhold til et interface? Har det noget med multibel arv at gøre?
Hvis det er tilfældet, hvad ville så være et konkret eksempel som fuldstændig udelukkede brugen af enten interface eller arv? På forhånd tak.
