接口
难的是在系统设计里怎么样使用接口,主要在语法,不在系统架构与设计
概念
声明
语法
只有抽象方法的抽象类?可以用接口来表示,用接口来代替这样的抽象类,是因为:
接口有比抽象类更好的特性
可以被多继承(因为类是单根继承的)
设计与实现完全分离(解耦)
更自然的使用多态
更容易搭建程序框架
更容易更换实现
接口是一种约定(具体是如何实现的,根据厂商的设计来)
体现在接口名称和注释上
有些接口只有名称
方法的实现方式要通过注释来约定
针对接口编程
程序设计时针对接口的约定而不考虑具体实现
接口是一种能力
体现在接口的方法上
针对接口编程
程序设计时关心实现类有何能力,而不关心实现细节
针对接口的约定而不考虑接口的具体实现
接口声明的语法
接口本身就是一个纯粹的抽象类
<修饰符> [abstract] interface <接口名>{
常量声明
方法声明
嵌套类型声明
}
接口是不能实例化的
接口成员-方法
抽象方法
静态方法
默认方法
继承接口(接口继承接口)
接口可以使用extends关键字
实现接口
接口的静态方法
接口的默认方法
一个类可以实现多个接口,用逗号分开就行了,实现所有的抽象方法
解决冲突
标记接口
用于标记一个类在特定环境中具有特定的意义
jdk中的标记接口
java.lang.Cloneable
java.io.Serializable
java.rmi.Remote
java5中引入的注解可以实现相同的功能