Java接口的理解

来源:互联网 发布:欧洲域名注册 编辑:程序博客网 时间:2024/06/02 00:35

之前一直不清楚接口到底起什么作用,与其麻烦地写接口、继承这个接口的类中还要写接口的实现方法,不如直接就在这个类中写实现方法岂不是更简单吗?


首先,从三个方面解答这一个疑问:
1、规范性:如果一个项目比较大或者多人共同合作的时候,那么就需要定义一些主要的接口,这个时候接口就规范了一些方法或者参数的名字了,还能告诉开发人员需要开发那些功能。
2、拓展性:写程序的时候,定义一个接口,一个功能类,然后你只要通过这个接口去引用和实现这个功能类就行了,以后要换要改的时候只需要引用新写的功能类或者直接在那个功能类你忙修改,这样就方便维护、拓展。
3、安全性:它描叙了系统对外的所有服务,却不涉及任何具体的实现细节。


举例:
接口 ->可以看做门牌
接口里面的方法 ->可以看做这个门牌下的人的名字
功能类里面对接口的实现 ->可以看做这个人的具体资料

例子1:你按照门牌找人,看到门牌了,你就能确定了门牌下的那个人是不是你要找的人了(这个是接口的原理)
例子2:你没找到门牌,直接走进去问某某某是不是这里的人,通过人来确认门牌,但是,万一你问的不是所需要的门牌咧?!这个时候就要一个个门来问了,这样相对没效率。(这个是反射的原理)
例子3:找人之前就确认好,这个人的具体位置,这个人附近的一些参照物等信息,这个时候说要记住的东西就会变多,而且如果你记住的信息和实际信息有区别的时候就傻了。(这个就是直接写实现方法)

//相当于门牌作用的接口public interface itface{    //规定这个门牌下的人需要有什么样的描述或者行为    public void functionA();    public void functionB();}//你要找的那个人的具体信息或者描述class Person_1 implements itface{    //继承接口itface,表示这个人是这个门牌下的    public void functionA(){        System.out.println("本人是某某某");    }    //接口里面的方法都要实现,实在是不需要的 就写个空操作    public void functionB(){    }}public static void main(String[] args){   //实例化Users类,相当于确认你要找的人是谁   Person_1 p1=new Person_1();   //通过调用这个人的functionA方法,来表示你找对人   p1.functionA();   //用哪个类实现的接口,那个接口就属于那个类自己的   //好比现在的functionA是Users类实现的,所以这个functionA所在的itface所代表的门牌就是Users的门牌} 

注意事项:
1、继承接口之后,那个类需要实现接口里面的所有方法(不管需不需要),不需要的方法直接写成空操作就好了。
2、一个类可以继承多个接口(如:class A implements itf1,itf2,itf3….)
3、通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
4、具体的实现体都是在实现接口的类中,接口只是定义了这些方法的调用方式。(接口好比规定了继承他的哪些类,在共性上有什么行为)


使用场景:
1、需要给系统外部调用,却不想把具体的处理方法暴露给系统外部的时候。
2、多个不同的类,都需要用到相同的某几个行为的时候(A、B、C类都需要用到一个add、一个delete、一个update、一个check的动作时)就把这些都需要用的方法写到接口里面规范起来。

大概就这样了,如果写错或者写少了,请补充一下吧。

0 0
原创粉丝点击