A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 乐享 中级黑马   /  2013-11-14 19:17  /  896 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如我定义了一个接口,但是我在继承这个接口的类中还要写接口的实现方法,那我不如直接就在这个类中写实现方法岂不是更便捷,还省去了定义接口?接口在java中的作用是什么?个人觉得只是一种规范。大家的看法呢?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

6 个回复

倒序浏览
    接口不只是一种规范啦!接口很有用的!不过你让我举例子我一时半会还真想不出合适的。说说它的作用吧。
    接口有利于代码的可扩展性。
    父类是共性方法的抽取,里面是基本功能,而接口中就可以封装特殊功能。你写了一个类,具有一些基本功能,但是若干时间后,你觉得不过瘾,想添加一些功能,如果你去修改原来的代码,代价是很大的,一般大家不会这么干,这时你就可以通过实现接口来完成,再定义一个类,继承原来的类,实现特殊功能的接口,这样既有了原来的功能,提高了代码的复用性,又有了新增功能。
    另外,你写了一个接口,就可以有好多类来实现这个接口,他们都有共同的方法名,但是实现的功能却不一样,这在多态中会用到。以后泛型中也会用到。
    还有,接口还可以用来多实现,一个可以同时继承和实现接口,而且可以同时实现多个接口,这是多继承的另一种体现。

点评

FFF
技术分那么高。不给你了!  发表于 2013-11-15 22:17
回复 使用道具 举报
Java中的接口:
用interface定义一个接口,在引用接口的类中用implements引用。
接口的作用:
(1)Java是只支持单继承的。但是有的时候一个子类要从多个父类中继承操作,这样单靠继承是不能实现的。
    而接口就打破了Java的单继承机制,这也叫Java的多实现机制。
(2)接口有利于代码的可扩展性。
   在系统添加新功能的时候只需要新建接口,然后在引用了接口的类中实现。原来的功能只需调用这个新的接口就可以了,而不需要改动原来写好的代码。也就是接口是程序的功能扩展。
(3)接口是对外暴露的规则。
    每一件事都有自己的规则或规范,定义接口就是申明:如果要拥有接口定义的这个功能,那么你必须按照接口给点的规则去实现这个接口。
(4)当然接口也可以有继承关系。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 很给力!

查看全部评分

回复 使用道具 举报
如果一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。     接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现    可以使用extends来继承接口的常量和抽象方法,但它与类中的extends不同,它可以继承有多个父接口(多重继承),各父接口间用逗号隔开。     接口中的所有常量必须是public static final,方法必须是public abstract,这是系统默认的,不管你在定义接口时,写不写修饰符都是一样的  定义接口  修饰符 interface 接口名 [extends 父接口列表]     {        常量域声明        抽象方法声明  }  class cat implements Animal  {     public void shout ()     {         System.out.print(“喵喵”);      }  }  实现接口    implements    一个类可以实现若干个接口    非抽象类必须实现所有的抽象方法  interface prt  {    public void prtln();  }  class A implements prt{    int a = 3;    public void prtln()    {      //输出a;    }  }  class B implements prt{    int b = 4;    public void prtln()    {      //输出b;    }  }  public class MyInterfaceDemo  {    public static void dost(prt c)    {      c.prtln();    }    public static void main(String[] args)    {      A a1 = new A();      B b1 = new B();      MyInterfaceDemo.dost(a1);      MyInterfaceDemo.dost(b1);    }  }
回复 使用道具 举报
本帖最后由 阿里策 于 2013-11-16 20:06 编辑
阿里策 发表于 2013-11-15 20:11
接口不只是一种规范啦!接口很有用的!不过你让我举例子我一时半会还真想不出合适的。说说它的作用吧。 ...

     别的啊,该给给啊,你比我高老了呢!
回复 使用道具 举报
阿里策 发表于 2013-11-16 20:04
别的啊,该给给啊,你比我高老了呢!

妹子?不给,来黑马别放过他
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马