think in java学习记录(九)接口

9.1 抽象类和抽象方法

包含抽象方法的类叫做抽象类,如果一个类包含一个或者多个抽象方法,该类必须被限定为抽象的,抽象类的子类也可以不对方法做定义但是也必须声明为abstract

9.2 接口

接口也是可以包含域的,但是隐式的声明为static final

9.3 完全解耦

只要一个方法操作的是类而非接口,那么就只能使用这个类和这个类的子类(即使两个类一模一样,不是父子类也不行)

能够创建一个能根据传入的参数对象的不同而具有不同行为的方法,被称为策略设计模式

9.4 java中的多重继承

使用接口还有一个核心原因就是能在多重继承(java里是实现多个接口)中,将对象转换为多个基本类型(事实上,当知道一个事务将会成为一个基类,那第一选择是将其定义为接口)

9.5 通过继承来扩展接口

interface a extends b,c{}可以这样使用extends但是仅限接口

9.5.1 组合接口时的名字冲突
尽量避免在组合接口时在不同接口中使用同一个函数名称,不然就可能会产生冲突

9.6 适配接口

接口的一种常见的用法就是策略设计模式,即将一个接口作为参数传入方法中,那么方法本身就可以依据传入的接口的实现类型进行不同的操作

9.7 接口中的域

放入接口中的域会自动被设为static final,所以很容易为设定为常量组,但现在已被enum所替代

9.7.1 初始化接口中的域
不能设置为空的final,当然这些域不是保存在接口里的,而是存贮在静态存储区

9.8 嵌套接口

接口也可以被放在其他类或者接口中

9.9 接口与工厂

生成遵循某个接口对象的典型方法就是工厂方法设计模式,这与直接调用构造器不同,我们在工厂对象上调用的是创建方法,是直接生成某个接口的某个实现对象,使得代码与接口完全实现分离,就不用哎创建时明确准确的类型

9.10 总结
对于创建类,几乎在任何时刻,都可以代替为创建一个接口和一个工厂,但我们编程的时候优先选择的还是类,而不是接口,只有当它明确要作为基类或者有其他原因的时候再设置为接口

发布了28 篇原创文章 · 获赞 1 · 访问量 645

猜你喜欢

转载自blog.csdn.net/c630843901/article/details/102642465