- 抽象类和抽象方法
抽象类目的:创建一个通用接口来操纵一系列类,但不允许类本身实例化。因为抽象类中没有具体的实现内容,创建其对象没有实质意义。
包含抽象方法的类一定是抽象类,抽象类可以不包含抽象方法。抽象方法是不完整的,只有声明而没有方法体。子类必须为父类中的抽象方法提供定义,若不定义,则也为抽象类。
抽象类和抽象方法非常有用,它们可以使类的抽象性明确起来,并告诉用户和编译器打算怎样来使用它们。抽象类还是很有用的重构工具,使得我们可以很容易的将公共方法沿着继承层次结构向上移动。
- 接口
interface产生一个完全抽象的类,没有任何具体实现,只允许创建者确定方法名,参数列表和返回类型,但是没有任何方法体。接口只规定了形式,而不提供任何具体实现。接口被用来建立类与类之间的协议。
接口内可包含域,但隐式的是static final的。
接口前不加public时具有包访问权限。接口中的方法都是public的。
接口不仅仅是一个极度抽象的类,它允许人们通过创建一个能够被向上转型的
接口中的方法不可是static的,因static方法属于类本身,而接口中的方法都为抽象,必须从子类中实现。