Je peux dire que je rapporte à cela. Quand j'ai commencé à apprendre sur OO et C #, moi aussi, je n'ai pas eu d'interfaces. C'est bon. Nous devons juste trouver quelque chose qui vous fera apprécier le confort des interfaces.
Laissez-moi essayer deux approches. Et pardonnez-moi pour les généralisations.
Essayer 1
Dites que vous êtes un anglophone. Vous allez dans un autre pays où l'anglais n'est pas la langue maternelle. Vous avez besoin d'aide. Vous avez besoin de quelqu'un qui peut vous aider.
Demandez-vous: "Hey, êtes-vous né aux États-Unis?" C'est l'héritage.
Ou demandez-vous: "Hey, parlez-vous anglais"? Ceci est l'interface.
Si vous vous souciez de ce qu'il fait, vous pouvez compter sur des interfaces. Si vous vous souciez de ce qui est, vous comptez sur l'héritage.
C'est correct de compter sur l'héritage. Si vous avez besoin de quelqu'un qui parle anglais, qui aime le thé et le football, vous feriez mieux de demander un Britannique. :)
Essayez 2
Ok, essayons un autre exemple.
Vous utilisez différentes bases de données et vous devez implémenter des classes abstraites pour les utiliser. Vous passerez votre classe à une classe du fournisseur de base de données.
public abstract class SuperDatabaseHelper
{
void Connect (string User, string Password)
}
public abstract class HiperDatabaseHelper
{
void Connect (string Password, string User)
}
L'héritage multiple, vous dites? Essayez cela avec le cas ci-dessus. Tu ne peux pas. Le compilateur ne saura pas quelle méthode Connect vous essayez d'appeler.
interface ISuperDatabaseHelper
{
void Connect (string User, string Password)
}
interface IHiperDatabaseHelper
{
void Connect (string Password, string User)
}
Nous pouvons maintenant travailler, du moins en C #, avec lequel nous pouvons implémenter des interfaces de manière explicite.
public class MyDatabaseHelper : ISuperDatabaseHelper, IHiperDatabaseHelper
{
IHiperDataBaseHelper.Connect(string Password, string User)
{
//
}
ISuperDataBaseHelper.Connect(string User, string Password)
{
//
}
}
Conclusion
Les exemples ne sont pas les meilleurs, mais je pense que ça donne raison.
Vous n'obtiendrez que des interfaces lorsque vous en ressentez le besoin. Jusqu'à ce que vous pensiez qu'ils ne sont pas pour vous.