引出:抽象类与普通类最大的特点是约定了子类的实现要求,但是抽象类是单继承,如果我们要求约定子类而且避免单继承的局限就需要实现接口,在以后的开发设计:接口优先,既可以使用抽象类,又可以使用接口。
概念:接口就是我们抽象方法与全局常量的集合,在java中使用interface ,因为接口与类的命名要求相同,这个时候我们可以在接口名字前面追加 I.
接口的组成:全局常量与抽象方法
1.如果我们的子类想使用接口,那么我们必须使用implems关键字实现,一个子类可以实现多个接口,也就是可以用接口实现多继承,
使用:对于接口的子类(如果不是抽象类),则必须覆写接口中的全部抽象方法。利用子类的向上转型通过实例化子类来得到接口的实例化
接口的实例化:接口是特殊的类,当一个子类继承了多个接口之后,接口对象通过子类进行实例化,那么父接口之间是可以互相转换的,但是依附于子类,通过子类实例化之后可以互相转换,子类不实例化,不能进行转换,所有子类接口可以实现多个接口的操作
接口的使用限制:接口一旦定义完成,就需要一个核心的说明,那么首先说明的是,接口里面只允许有public权限,也就是说不管是属性与方都用public
2.有意义接口之中只是全局常量与全局方法,一般加public 与abstric 99%的接口只会提供抽象方法,很少在接口里面有全局常量,
3.当一个类需要实现接口又要继承抽象类的时候,先使用extends继承一个抽象类,而后在使用implenments实现多个接口,在抽象类名称之前加abstract
4.一个抽象类可以使用implements实现多个接口,但是接口不能够去继承抽象类
5.一个接口可以使用extends来继承多个父接口,接口多继承
6.接口可以定义一系列的内部接口,包括内部的普通类,内部抽象类,内部接口,其中使用static定义的内部接口就相当于外部接口
接口的应用:定义标准:三大核心应用:
1.定义操作标准
2.表示能力
3.在分布式开发之中 暴露远程服务方法
。使用对象的接口和对象的多态性结合,对参数的统一更加统一,而且可以发现接口是设计在类之上的设计
接口的设计模式----工厂设计模式(添加另外还有两种重要的模式,代理模式,单例模式)
如果我们客户端不想改变又能改变功能,那么我们添加第三方,修改第三方,不影响客户端的使用,使用Factory
总结:只要编写的接口,如果要想取得接口的实例化对象:第一反应写工厂类