static void Main(string[] args) { Console.WriteLine("*** Use of 'new' in the context of method Overriding.Example-2 ***\n"); ParentClass parentOb; parentOb = new ParentClass(); parentOb.ShowMe(); parentOb = new ChildClass1(); parentOb.ShowMe(); //Inside Child.ShowMe parentOb = new ChildClass2(); parentOb.ShowMe(); //Inside Parent.ShowMe Console.ReadKey(); }
static void Main(string[] args) { // ChildClass2で定義したShowMeはポリモーフィズムに含まれない // ChildClass2クラスのオブジェクトを生成してParentClass型の変数に代入しているため、 // コンパイラがParentClassのメソッドしか見つけることができない。 // このため、Parent.ShowMeの内容が出力される Console.WriteLine("*** メソッドをオーバーライドする際にnewキーワードを用いる例 その2 ***"); ParentClass parentOb; parentOb = new ParentClass(); parentOb.ShowMe(); parentOb = new ChildClass1(); parentOb.ShowMe(); parentOb = new ChildClass2(); parentOb.ShowMe(); Console.ReadKey(); }