在运用多态特性时,一个基类不会被实际调用,这个基类的所有方法都只是为它的所有导出类提供了一个通用的接口,方便向上转型。由于这种基类的方法几乎相当于用于不会被调用的只用来占位的哑方法,所以为了便捷,就没必要在基类对这些通用接口写出方法体,只需用abstract修饰声明即可,具体方法体放在导出类中。这种方法叫做抽象方法。含有至少一个抽象方法的类就是抽象类,同样需要用abstract修饰。
抽象方法:只有声明而没有方法体,开头用abstract修饰。包含一个或多个抽象方法的类是抽象类。
使用抽象,可以便捷的写出通用接口,并为导出类的确定提供规范。接口中只允许存在没有方法体的方法声明,切自动为public的。
接口最主要的用途是允许多重继承,如果一个类扩展自多个接口,只需在implements后面写明所有接口并用逗号隔开即可。例如一个Hero类继承自ActionCharacter和接口Canfight、Canswim和Canfly,就可以声明为:
class Hero extends ActionCharacter
implements Canfight,canswim,canfly{}
其中接口的定义也可以来自基类。
接口也可以使用关键字extends来继承,而且还可以同时extends多个,只需用逗号隔开,这种模式只适用于接口。