① 含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
- -
\ | Abstract class | Interface |
---|---|---|
实例化 | 不能 | 不能 |
类 | Java中单继承 | 一个类可以实现多个接口 |
数据成员 | 可有自己的 | 静态的不能被修改即必须是static final |
方法 | 可以私有的、非abstract方法、静态方法,方法必须有实现 | 不可有私有的、静态的,默认是public,abstract 类型,不需要实现 |
变量 | 可有私有的,默认是friendly 型,其值可以在子类中重新定义,也可以重新赋值 | 不可有私有的,默认是public static final 型,且必须给其初值,实现类中不能重新定义,不能改变其值 |
设计理念 | 表示的是“is-a”关系 | 表示的是“like-a”关系 |
实现 | 要用extends继承 | 要用implements实现 |
构造方法 | 可以有 | 不可以有 |