首页 > 代码库 > C#继承,重写虚方法的使用笔记

C#继承,重写虚方法的使用笔记

一,如下例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DemoTest
{
    class Program
    {
        static void Main(string[] args)
        {
            B a = new B();
        }
    }
    public class A
    {
        public A()
        {
            Say();
        }
        protected virtual void Say() {
            Console.WriteLine("A");
        }
    }

    public class B : A
    {
        protected override void Say()
        {
            Console.Write("B");
        }
    }
}

结果:

技术分享

 

输出的则是B

二,通过调试得出结论:

当B继承A时,并重写A中的方法,程序运行的时只会进入到B中重写的方法Say(),而不会进入A中的Say()

C#继承,重写虚方法的使用笔记