很多程序员对于接口存在的意义很疑惑。不知道接口到底是有什么作用,为什么要定义接口。
好像定义接口是提前做了个多余的工作。下面4点关于JAVA中接口存在的意义:
1、重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制,接口是特殊的抽象類,在Java中一個類只能繼承一個父類卻可以實現多個接口。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。Java的特性封装,继承,多态。在Java中有两种形式可以实现多态,继承和接口。
2、简单、规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现哪些业务,而且也将命名规范限制住了(防止一些开发人员随便命名导致别的程序员无法看明白)。
3、维护、拓展性:比如你要做一个画板程序,其中里面有一个面板类,主要负责绘画功能,然后你就这样定义了这个类。可是在不久将来,你突然发现这个类满足不了你了,然后你又要重新设计这个类,更糟糕是你可能要放弃这个类,那么其他地方可能有引用他,这样修改起来很麻烦。如果你一开始定义一个接口,把绘制功能放在接口里,然后定义类时实现这个接口,然后你只要用这个接口去引用实现它的类就行了,以后要换的话只不过是引用另一个类而已,这样就达到维护、拓展的方便性。
4、安全、严密性:接口是实现软件松耦合的重要手段,它描叙了系统对外的所有服务,而不涉及任何具体的实现细节。这样就比较安全、严密一些(一般软件服务商考虑的比较多)。
列如-->>接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】【对象名】=new 【实现接口的类】,这样你想用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。
代碼樣式-->>
aa s1 =new b();
s1.ben();
aa s2 =new c();
s2.ben();
interface aa {
void ben();
}
class b implements aa {
@Override
public void ben() {
}
}
class c implements aa{
@Override
public void ben() {
}
}
网友评论