首先说一下可实例化类的继承:
1、除了私有成员,都会被子类访问到;特别的,如果父类有静态成员,则只有public修饰的才能被子类访问到,而且不需显示继承。
2、C#只支持单继承,即一个子类只能有一个父类。
3、实例化子类时,先执行父类的构造函数,再执行子类的构造函数;析构函数执行顺序相反。
4、允许子类和父类有相同的方法名,new关键字将显示隐藏子类的方法,不同于override覆盖。
5、override覆盖,先找上一级父类的vartual虚拟方法,如果找到了就覆盖,否则将在父类的父类时中查找

抽象类
1、所有的抽象成员在子类中必须被实现
2、抽象类可以继承抽象类
3、抽象类可以继承非抽象类
4、抽象类的使用场合:在定义时有实现的部分,又有抽象的部分,才用抽象类。

接口
1、接口可以继承接口,接口不可以继承类。
2、一个类可以继承多个接口,接口的成员必须都被实现。
3、接口作为方法的形参,延迟实现,增强了程序的灵活性,调用时传递一个子类即可。

补:protected+internal修饰符的成员
在本程序集(即同一个dll文件)中的任意位置都可访问到,在其他程序集是不可访问的