1、抽象类不能直接实例化,并且对抽象类使用 new 运算符是编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含 有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。 2、允许(但不要求)抽象类包含抽象成员。 3、抽象类不能被密封。
4由关键字abstract修饰 抽象类不能被实例化,一般抽象类是用来继承的!
1、抽象类里可以没有抽象方法,但它不能实例化。例如: abstract class employee { }//这也是一个成功的抽象类,但它不能初始化。
2、有抽象方法:abstract 返回类型 方法名();的类必定是抽象类,类的class前必须加abstract。
3、抽象类前可加public 或没有。抽象方法前可加public protected两个访问控制符和不加,但是不能加private这一访问控制符。访问控制严格遵守访问控制符的特点,且在实现方法时,必须与抽象方法的的访问控制相同或更高,不能更低。 abstract 返回类型 方法名(); //正确 public abstract 返回类型 方法名(); //正确 protected abstract 返回类型 方法名();//正确 private 返回类型 方法名(); //报错
4、抽象方法前不能加final和static。
5、拥有抽象方法的类就叫做抽象类。 (1)抽象类的格式为: 访问控制符(只能是public或没有) abstract class 类名 { 其它; 访问控制符(不能是private static final) abstract 返回类型 方法名();
可以创建实例对象指向子类的new出来的对象
抽象方法在子类中要重写才有意义
抽象类作为子类设计的模版,限制子类设计的随意性 }