|
分類:[C#]
インタフェースの練習をしていて判らないので質問させていただきます。
Doubutuクラスを継承しているのでNekoクラスでインターフェースを実装する必要はないと思うのですが、 Nekoクラスに「, Pet」を追加しなければ、結果として「ワン!」が出力されてしまいます。 私の想定する結果はMainの中に「Pet pet = neko1;」と指定しているのでNekoクラスに「, Pet」を追加しなくても「ニャン!!」が呼ばれる予定なんですが。。。どうかご教授願います。
メイン class Program { static void Main(string[] args) { Hito hito = new Hito("安藤"); Neko neko1 = new Neko("〜省略〜"); Pet pet = neko1; hito.walk(pet); } }
Doubutuクラス class Doubutu : Pet //インターフェースを実装 { //散歩に行く public void go() { Console.WriteLine("ワン!"); } }
Hitoクラス class Hito { public void talk(Pet pet) { Console.WriteLine("こんにちは。"); kazoku.go(); } }
インターフェース public interface Pet { //散歩に行く void go(); }
Nekoクラス class Neko : Doubutu, Pet ←←不明点 { //オーバーライド public new void go() { Console.WriteLine("ニャン!"); } }
|