黑马程序员技术交流社区

标题: 接口的一点理解,不知道对不对 [打印本页]

作者: 窦超    时间: 2011-12-22 13:36
标题: 接口的一点理解,不知道对不对
本帖最后由 窦超 于 2011-12-22 18:00 编辑

书上视频中都说接口解决了java的继承单一这个缺点,但好像都没提过什么时候用接口,什么时候用继承,我就不懂到底具体该怎么用接口与继承?
    对于接口的定义中说,接口中只有常量和抽象方法。继承一般是继承抽象类,而抽象类定义是只要类中有抽象方法即为抽象类,可以有属性,构造方法,方法或抽象方法。个人感觉,在写代码过程中,接口一般是为子类提供方法的,而属性,构造方法,get  set一般是通过继承来实现,因为接口里不能又成员变量跟构造方法,所以接口负责提供方法,属性构造方法之类的不可能每个子类都写一遍,所以继承父类负责。当然不能绝对说谁负责那块,一般情况。不知能否这样理解?
作者: 杨强    时间: 2011-12-22 13:42
区别有2点
1: 接口中全是抽象函数,实现接口必须重写接口中的所有方法,继承必须重写父类中的抽象方法,其他方法选择性重写
2:一个类可以实现多个接口,但一个类只能继承一个类 所以说他解决了 java中继承单一的问题 也是多态的体现之一
作者: 房宝彬    时间: 2011-12-22 14:09
接口就是一些方法特征的集合------接口是对抽象的抽象。
优点其实就是为了实现多继承的.大多现实程序都使用了所谓的"多重继承",但JAVA不支持多重继承,所以它引入了接口的概念,接口在JAVA中是为了支持运行时多态方法解决而设计的.通过提供interface这个关键字,JAVA就允许开发人员充分利用多态性的"一个接口,多个方法".也就是说,用interface你可以指定一个类必须做什么而不是规定它如何去做,一个类可以实现多个接口.但是它只容许继承一个类
用面向对象来说吧
你可以把接口看做一种行为,比如说:猎食、吃东西就是两种不同的行为,但几乎每种动物都有这种行为,但猎食和吃东西的具体方法就不一样了。
放到程序里来,你就可以把这两种行为作为方法放到一个接口里了。假如你的程序是来描述动物猎食和吃东西,那么无论你要new多少个对象,虽然是不同的动物,只要实现这个接口就行了,而具体的不同点,你就只要在方法里加以描述就行了。
这样就有利于程序的扩展。
而接口的目的就在于此!
---------------------------------------------------------------------------------

作者: 方书堂    时间: 2011-12-22 14:29
一般情况下,你可以理解为继承它是一个所属关系的,也就是说子类必须所属于父类当中,
比如说父类: 人 ,子类可以有:男人,女人。而男人和女人都是属于人这体系当中的。
而接口一般可以理解为相像,它不一定要是所属关系,它一般用于扩展,比如说,你看到
一个人相似会抽烟的,但是他具体会不会还是要具体事务分析,会的你就可以实现这个接口,
不会你就不实现这个接口,它是用于部分子类去扩展功能用的
作者: 王昌盛    时间: 2011-12-22 15:10
定义接口还有一个重要的功能就是定义一种规范。
给许多具有相似功能的类抽象出一个接口来,那么所有实现这一接口的类的具体某一方法的名字是相同的,这就有利于多态的实现。同时,当定义一个新的具有该功能的类时,就可按照规范定义,即实现这一接口。这在编程时就非常的方便,比如工厂模式等。
作者: 为梦而战    时间: 2011-12-22 15:40
本帖最后由 为梦而战 于 2011-12-22 15:41 编辑

接口的作用是告诉:做什么。知道做什么就要知道怎么做,那子类就是告诉:怎么做的,
继承的作用是:如果方法不够用,或者其它类已有自己所需要的方法,那就继承过来,这样做是为了提代码复用性。
JAVA只支持单继承,这就局限了,所以以接口的多实现来补充这个局限,以提高代码的效率。
作者: 郝锡强    时间: 2011-12-22 16:02
接口相当于一个封装好的规范模块,任何人都可以用规范的方法调用他们,当然你也可以自己去写,我觉得最大用途还是减轻了我们敲代码的复杂度
既然都叫做应用程序编程接口了,那么就当作子函数看待应该就没问题了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2