黑马程序员技术交流社区

标题: 再问接口问题 [打印本页]

作者: 郑志强    时间: 2013-3-13 18:25
标题: 再问接口问题
本帖最后由 郑志强 于 2013-3-14 19:02 编辑

接口不能实现方法,类继承接口方法和属性也还是要写一片,那接口到底是为什么。
继承相同接口的不同类有关系没?能通过接口互相传值那吗?
作者: 靳石磊    时间: 2013-3-13 18:34
理解接口,应该理解接口是一种规范或规定,它强制继承它的类实现某种方法(也即某种功能)。类也可以不继承某接口而实现接口中的功能。继承一个接口的不同类,具有一些向相同的特点。有利于我们认识类而已。
作者: 曾玉锋    时间: 2013-3-13 18:53
本帖最后由 曾玉锋 于 2013-3-13 18:57 编辑

接口类型提供某种功能,只要某个类实现了接口,那这个类就有了这个功能,而不同的类实现这个功能可能不同。
比如说一个接口IFly 提供一个void Fly(),有三个不相关的类(人、鸟、星体)都实现了IFly,都有了飞的方法,但是,人是"通过飞机飞的",鸟是"用翅膀飞的",星体则是"通过万有引力飞的"。
有一个方法
Fun(IFly fly)
{
    //fly引用人类对象,则输出"通过飞机飞",
    //fly引用鸟对象,则输出"用翅膀飞"
    //fly引用星体,则输出"通过万有引力飞"
   //...
    fly.Fly();
}
将某个实现了该接口的子类对象传入,则表现该子类的行为。
接口类型是面向对象编程三大特性之多态必不可少的重要成员,也能使程序得到很好的扩展。
作者: wanggang    时间: 2013-3-13 18:55
接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。一个类可以实现多个接口,能很好的实现java的多态性。Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public,静态的和final属性。

作者: 罗威    时间: 2013-3-13 20:18
接口的出现就是弥补JAVA不能多继承,而JAVA已经定义了一系列的接口,而这些接口都有自己的儿子,而你使用接口只需要创建儿子的对象再调用方法就行了!你不需要自己重写方法。这个就是面向对象,你指挥对象做事情就可以了!  JAVA API中已经定义好了很多方法,JAVA就是怕你不会写,所以方法主体都帮你写好了,你直接调用就好了!比如说数组,你要排序,只要导入排序这个方法所属的Arrays类就可以了。然后Arrays.sort();他就帮你排序了,为什么呢?因为他内部已经帮你写好了! 接口同样也是这个道理,他的子类已经重写好了他的方法,你要用他的方法,就直接用子类对象调用就可以了!根据JAVA的规定是不能同时直接继承两个类的,而很多情况下只继承一个类往往满足不了你功能的需求,那么就必须把类定义成接口,就等于是换了一一件衣服,把class 换成了 interface 把  extends 换成了 implements 这样就可以多实现(实现你就当作是继承,只是换了个名字)
作者: 易鹤龙    时间: 2013-3-13 20:52
接口定义一种通用的方法,功能。继承此接口的类必须实现其中的方法。因此此类也就有了接口需要实现的功能。




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