C# 之抽象类和抽象方法
概述:abstract 关键字 抽象类不能被实例化,抽象方法不能有方法体,抽象类中的所有抽象方法必须在子类中重写( override ), 一个抽象类可以同时包含抽象方法和非抽象方法。 abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。 在类声明中使用 abstract 修饰符以指示类只能是其他类的基类。 抽象类具有以下特性: 抽象类不能实例化。 抽象类可以包含抽象方法和抽象访问器。 不能用 sealed 修饰符修改抽象类,这意味着该类不能被继承。 从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实现。 在方法或属性声明中使用 abstract 修饰符以指示此方法或属性不包含实现。 抽象方法具有以下特性: 抽象方法是隐式的 virtual 方法。 只允许在抽象类中使用抽象方法声明。 因为抽象方法声明不提供实实现,所以没有方法体;方法声明只是以一个分号结束,并且在签名后没有大括号 ({ })。例如: public abstract void MyMethod(); 实现由 overriding 方法提供,它是非抽象类的成员。 在抽象方法声明中使用 static 或 virtual 修饰符是错误的。 除了在声明和调用语法上不同外,抽象属性的行为与抽象方法一样。 在静态属性上使用 abstract 修饰符是错误的。 在派生类中,通过包括使用