EDIT: Cette réponse est destinée aux implémentations d'interface C#. Dans ce cas de Java le scénario est similaire juste que l'analyseur syntaxique veut un mot-clé publique mentionné dans l'interface, qui est implicitement fait en C#
méthodes d'interface sont implicitement publiques en C# parce qu'une interface est un contrat destiné à être utilisé par d'autres classes. En outre, vous devez déclarer ces méthodes être publiques, et non statiques, lorsque vous implémenter l'interface.
interface IStorable
{
void Read();
void Write(object obj);
}
Notez que les IStorable
déclarations de méthode pour Read()
et Write()
ne comprennent pas les modificateurs d'accès (public
, protected
..). En fait, fournir un modificateur d'accès génère une erreur de compilation.
class Document : IStorable
{
public void Read()
{
//
}
public void Write(object obj)
{
//
}
}
Il suffit de penser sur les interfaces comme contrats être mis en œuvre comme public
Si vous souhaitez que les membres privés et protégés ou méthodes statiques et champs non statiques, vous pouvez utiliser une 'abstract class' –
@roottraveller Ce n'est pas un doublon de cette question –