首页 > 代码库 > 疯狂Java讲义(十四)---- 抽象类和接口

疯狂Java讲义(十四)---- 抽象类和接口

  • 抽象类  

抽象方法和抽象类必须使用abstract修饰符定义,有抽象方法的类只能被定义为抽象类,抽象类里可以没有抽象方法。抽象类不能被实例化。

 

  • 接口

接口只是一种规范,定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里的实现细节,它只规定这些类必须提供某些方法。接口体现的是规范和实现分离的设计哲学。

 

  接口语法:

  1. 修饰符可以是public或省略,如果省略修饰符,默认采用包权限访问控制符。所以一般都是public。因为接口是多个类共同的公共行为规范,因此接口里的所有成员都是public访问权限。
  2. 一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类。
  3. 接口不包含构造器和初始化块定义,可以包含常量属性/抽象实例方法/内部类(内部接口/枚举)定义。
  4. 接口中的常量是和接口相关的,因此系统会自动为这些属性添加static和final修饰符。接口中的方法会自动添加abstract修饰。而且方法的修饰符只能是public和abstract
  5. 接口里的方法全部是抽象方法,因此不允许定义静态方法,即不可以使用static来修饰接口里的方法。

 

  一个类实现了一个或多个接口之后,这个类必须完全实现这些接口里所定义的全部抽象方法,否则,该类将保留从父接口那里继承到的抽象方法,该类也必须定义成抽象类。

疯狂Java讲义(十四)---- 抽象类和接口