abstract(抽象) 可以与类、方法、属性、索引器、事件一起使用。
在类声明中使用abstract修饰符,以指示某各类只能是其他类的基类。
标记为抽象或包含在抽象类中的成员必须通过抽象派生的类来实现。
若将一个类设置为abstract,则该类必须被继承使用。
此类不可生成对象。
abstract可以将子类的共性最大限度的抽象出来,放在父类中,提高程序的简洁性。
abstract虽然不能生成对象,但可以声明,作为编译时类型,但不能作为运行时的类型。
final和abstract不能同时出现。
当abstract用于修饰方法的,此方法为抽象方法,此方法不需要实现,实现留给子类覆盖,子类覆盖该方法之后方法才能生效。
private void print(){};此语句表示方法的空实现;
Abstract void print(){};此语句表示方法的抽象,无实现。
若一个类中有一个抽象方法,那么这个类为抽象类;一个抽象类中,也可以有非抽象方法。
若让一个非抽象类继承一个含抽象方法的抽象类,编译时会发生错误。
为了实现多态,父类必须有定义。父类不实现,子类实现,此时可将父类定义为abstract类。
abstract 和 static不能同时使用(因为static不能被覆盖,abstract为了生效必须覆盖)。