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