在 Java 语言中使用 abstract 来修饰的类定义抽象类。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
Abstract 关键字同样可以用来声明抽象方法,抽象方法只包含一个方法名,而没有方法体。
1.抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。 ★
2.抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
3.构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。 ★
4.抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。(子类也是抽象类)。
接口:
- 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错)。
- 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
- 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。
- 接口中的成员变量只能是 public static final (因为有final关键字 所以变量为常量).
- 接口支持多继承(一个实现类可以实现多个接口)。