接口抽象类类

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

namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            A a = new D();
            a.test();
            Console.ReadLine();
        }
    }
    interface A
    {
        void test();
        void testtest();
    }
    abstract class B : A
    {
        public virtual void test()
        {
            Console.WriteLine("i am BBB");
        }
        abstract public void testtest();
    }

    class C : B
    {
        public void test()
        {
            Console.WriteLine("I AM CCC");
        }
        public override void testtest() { }
    }
    class D : C
    {
        public void test()
        {
            Console.WriteLine("I AM DDD");
        }
    }
}
//OUTPUT:i am BBB
//1.对于virtual 没写new或override的默认为new
//2.如果多层次的new,向上级联
//3.可以显示的实现接口,不可以显示的实现抽象类
//4.如果不想被子类改写,请不要在方法前面加virtual
//5.对于abstract 必须写override
原文地址:https://www.cnblogs.com/bayonetxxx/p/1517408.html