1.在抽象类中,只提供对这些抽象方法的方法标识或者方法声明,而这些方法的实现则在抽象类的继承类中进行。
抽象类和抽象方法可以使用abstract关键字进行标识,
2.实例化一个抽象类是非法的。如果抽象类被继承后,在子类中必须对抽象类中的所有抽象方法进行实现,否则必须把子类也声明为抽象类。
3.在使用抽象类的时候,可以使用抽象类的引用指向其继承类的对象,并对对象的方法进行调用。
例子:
4.接口(interface)是C#中一种比较特殊的类型,它用于定义需要在子类中遵守的规范(例如方法的标识,属性的标识或者索引器的标识),也不能进行实例化操作。接口中所有的成员都具有public和abstract的默认属性,接口中所有的方法都必须在子类中进行实现。
5.与类的继承不同的是,一个类可以同时实现多个接口。而且,一个接口可以继承其他接口。通过声明接口类型的引用,可以使该引用指向任意的实现该接口的类。
6.子类可以对基类已经实现的接口进行重新实现。抽象类也可以对接口进行实现。
例子: