C#におけるインターフェースの実装について
C#におけるインターフェースの実装について
インターフェースを実装する際、実装するメソッドにアクセス修飾子publicを付与しないとコンパイルエラーになります。
そこで、以下の2点について解決したいです
・publicを付与しなければならない理由
・実装するメソッドをprivateやprotectedにすることは可能か。可能であればどのような方法があるか。
発生している問題・エラー
Error CS0737: 'ClassHoge' は、インターフェイス メンバー 'IHoge.Foo()' を実装していません。'ClassHoge.Foo()' は public ではないため、インターフェイス メンバーを実装できません。 (CS0737)
該当するソースコード
interface IHoge
{
void Foo();
}
internal class ClassHoge : IHoge
{
//publicを指定しないとコンパイルエラーになる
void Foo()
{
Console.WriteLine("インターフェースIHogeを実装したクラスだよ");
}
}