接口的定义与使用
一:接口基本概念
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
抽象类的缺点:单继承
接口的优点:多实现
子类要想实现接口 需要使用 implements来实现接口 使用逗号分开
为了解决抽象类的单继承局限可以通过用接口来实现“多继承”的概念
二:接口使用限制
接口中的方法的 abstract 可以省略,而抽象类中不能省略子类实现抽象类和接口继承的顺序: 子类 extends 一个抽象类 implements 多个接口(逗号分开)
一个抽象类可以使用 implements 去实现多个接口
一个接口可以使用 extends 来继承多个父接口 , 却不能继承抽象类
接口可以定义一系列的内部接口:内部普通类 内部抽象类 内部接口(使用static定义的内部接口就相当于外部接口)
接口在开发中有三大核心应用环境:
- 定义操作标准
- 表示能力
- 在分布式开发中暴露远程服务方法(很重要学完web开发后必须熟练运用)
三:工厂设计模式(重点):
传统开发:子类为接口进行对象的实例化处理
主方法是一个客户端,对于主方法的修改不应该影响客户端(主方法尽量不使用new关键字)此时的new是最大的耦合元凶
要想解开耦合需要用到factory设计来描述
定义一个类(类名factory),里面有一个static的方法(该类的实例化没有意义,用static就行)
工厂设计模式的static方法返回类型是你所需要的
(如果想取得接口的实例化对象,使用工厂设计模式)
四:代理设计模式
定义:两个子类共同实现一个子类,其中一个子类 负责真实的业务实现 另外的子类负责真实业务主题的操作
代理实现子类---->调用真实实现子类
创建代理对象的时候必须要设置要代理的真实主题子类
代理的本质是所有的操作都有遇之相辅相成的代理类
五:抽象类与接口的区别
抽象类和接口都属于常用的类结构设计,优先选择在接口
抽象类也有优点 他可以定义普通方法区别点:
抽象类使用abstract声明,extends继承抽象类或者(多)接口 。 内有普通、抽象方法,全局常量 , 全局变量 , 属性 , 构造方法 。设置权限是各种权限。一个抽象类可以实现若干个接口 ,一个子类可以继承一个抽象类 。
接口使用interface声明 , extends继承(多)接口 , implements实现接口 。内有抽象方法 全局常量 。 只有public权限 。 一个接口不能继承抽象来但是可以使用extends 来实现继承多个多接口 , 一个子类可以实现多个接口
除了单继承的局限之外,接口和抽象类都是类似的
六:匿名内部类
匿名内部类应该是在接口或者抽象类形式上完成 , 普通类也可以实现匿名内部类但是不推荐,没有实际意义
记录时间:(2017年04月010日 11:48 接口不是类,却和类的用法很相近)