読者です 読者をやめる 読者になる 読者になる

プログラミングでアイデアを具現化したい

あらゆるものを具現化するためにプログラミングを始めました。主にC#

仮想メソッドとオーバーライド

C#


独習C# 第3版より

仮想メソッドは基本クラスでvirtual装飾子をつけて宣言されたメソッドのこと。
仮想メソッドは派生クラスで再定義することができて、
それを「メソッドのオーバーライド」と言う。
簡単な例は下記のコード。

using System;
    class Program {
        static void Main(string[] args) {
            var baseOb = new Base();
            var dob1 = new Derived1();
            var dob2 = new Derived2();
            var dob3 = new Derived3();

            baseOb.OverrideTest1();
            dob1.OverrideTest1();
            dob2.OverrideTest1();
            dob3.OverrideTest1();
        }
    }
    class Base {
        //基本クラス
        public virtual void OverrideTest1() {
            Console.WriteLine("仮想メソッド基本");
        }

    }
    class Derived1 : Base {
        public override void OverrideTest1() {
            Console.WriteLine("オーバーライド1");
        }
    }
    class Derived2 : Base {
        public override void OverrideTest1() {
            Console.WriteLine("オーバーライド2");
        }
    }
    class Derived3 : Base {
        //オーバーライドしてない
    }

実行結果
f:id:tos5511:20160110012202j:plain

退屈な更新が続く。
しかしブログに更新していくことでいわゆる写経経修行も
兼ねているつもりなのでもうしばらくお付き合いください。