Example #1
0
        public static void Test()
        {
            ParentClass parent = new ChildClass();

            parent.CommonMethod(); // 调用父类  普通方法由左边决定,编译时决定


            {
                typeof(ParentClass)
                .GetMethod("CommonMethod")
                .Invoke(parent, null);     // 调用父类



                typeof(ChildClass)
                .GetMethod("CommonMethod")
                .Invoke(parent, null);     // 调用子类
            }

            {
                dynamic dParent = new ChildClass();
                dParent.CommonMethod(); // 调用子类方法 运行时决定的
            }


            parent.VirtualMethod();  // 调用子类  虚方法由右边决定, 运行时决定

            parent.AbstractMethod(); // 调用子类 抽象方法由右边决定, 运行时决定
        }
Example #2
0
        public static void Test()
        {
            Console.WriteLine("*******************************************");
            Console.WriteLine("*******************************************");
            Console.WriteLine("*******************************************");
            ParentClass instance = new ChildClass();

            Console.WriteLine("下面是instance.CommonMethod()");
            instance.CommonMethod();
            Console.WriteLine("下面是instance.VirtualMethod()");
            instance.VirtualMethod();
            Console.WriteLine("下面是instance.AbstractMethod()");
            instance.AbstractMethod();


            Console.WriteLine("*******************************************");
            Console.WriteLine("*******************************************");
            Console.WriteLine("*******************************************");
        }