C#, ein Interface, zwei verschiedene Implementierungen:
internal interface IDataAccessArticles
{
ArticleCollection GetArticlesByCategoryID(int categoryID);
}
internal class DataAccessArticlesMySql : IDataAccessArticles
{
public ArticleCollection GetArticlesByCategoryID(int categoryID)
{
throw new System.NotImplementedException();
}
ArticleCollection IDataAccessArticles.GetArticlesByCategoryID(int categoryID)
{
throw new System.NotImplementedException();
}
}
Jetzt kann man sich, vor allem wenn man bisher wenig bis gar nicht
mit Interfaces gearbeitet hat, die Frage stellen - wozu es jetzt die
zwei verschiedenen Arten der Implementierung gibt. Die Antwort ist
einfach:
Implementiert eine Klasse verschiedene (beliebig viele) Interfaces,
die wiederum gleich benannte Member besitzen, so kann man damit zwei
Wege gehen: entweder man implementiert den Member einmal für beide
(mehrere) Schnittstellen, oder man implementiert ihn für jede
Schnittstelle explizit, also mehrfach - wenn er z.B. jeweils eine unterschiedliche Funktion hat.
Mehr Informationen.