接口
接口和内部类为我们提供了一种将接口和实现分离的更加结构化的方法(面向接口编程)
普通类–抽象类(为所有的导出类创建一个通用的接口)–接口
抽象类中的通用接口(理解为方法)建立起一种基本的形式,以此表示所有导出类的共同部分
创建抽象类是希望通过这个通用接口操纵一系列类
抽象类是不完整的,仅有声明而没有方法体,不能创建抽象类的对象
- 创建抽象类和抽象方法非常有用,因为它们可以使类的抽象性明确起来,并告诉用户和编译器打算怎样来使用它们.
- 抽象类还是很有用的重构工具,因为它们使得我们可以很容易地将公共方法沿着继承层次结构向上移动
- 一个接口表示:”所有实现了该特定接口的类看起来都像这样”
- 接口被用来建立类与类之间的协议
- 接口中的域默认是static final 修饰的
- 接口中的方法默认是public的
- 当要实现一个接口时,在接口中定义的方法必须被定义为是public的,否者只能的到默认的包访问权限,这样在方法被继承的过程中,其访问权限就被降低了,这是java编译器不允许的.
- The elements of an interface are public but the interface itself is not, until we declare it public for use outside its package:
- 接口中的元素是public的,但是接口本身有public和默认包权限
完全解耦
- 只要一个方法操作的是类而非接口,那么你就只能使用这个类及其子类.但是如果你想将这个方法用于不在此继承结构中的某个类,那么你就要触霉头了.
- 接口可以在很大程度上放开上面的限制,因此我们可以编写复用性更好的代码