黑马程序员技术交流社区

标题: 接口 [打印本页]

作者: 秦超    时间: 2012-3-13 23:37
标题: 接口
接口可以实现功能扩展,子类在继承父类的同时想要扩展功能,可以用接口实现,这么看来,接口不就相当于一个抽象了所有函数的类了吗?只不过这个类里面所有的函数都必须使用而已
作者: 李晓旭    时间: 2012-3-13 23:46
我觉得子类就是为了重写或者扩展父类的功能而出现的新类
而接口是那些已经继承了父类特性的子类们,又找到了共同的方法,或者共性,所以需要实现同一接口。
这样虽然这些子类并不是一个体系,但是他们通过实现相同接口找到了共性
创建接口的子类对象,通过多态,降低耦合性,达到更大的功能扩展
作者: 朱辉    时间: 2012-3-13 23:52
接口算是抽象类的变体吧,抽象类里面可以有非抽象的方法,但是接口里面只能有抽象方法,子类实现父类的时候必须覆写父类所有的方法。定义成接口也是方便日后的功能扩展
作者: 潘许超    时间: 2012-3-14 00:05
接口:格式:interface{}

接口中的成员修饰符是固定的。

成员变量:public static final

成员函数:public abstract

接口的出现将“多继承”通过另一种形式体现出来,即“多实现”

接口:初期理解,可以认为是一个特殊的抽象类

当抽象类中的方法都是抽象的,那么该类可以用接口的形式来表示

接口的特性:接口可以被类多实现。也是对多继承不支持的转换形式,java支持多实现。即使有同名函数也因为没有方法主体,所以只用覆盖一次即可。

接口也接口之间也有关系。接口之间可以多继承。但是同名方法的返回值必须一样。java支持多继承,只有在接口与接口之间可以实现多继承。类之间只有单继承。


作者: OMG    时间: 2012-3-14 00:47
抽象类,是类,接口是接口,接口是为了弥补类的不足而诞生的:面向对象,提高代码的复用性,可惜之类只能继承一个类为父类,这样就出现了代码复用的局限性,如果在继承一个类的同时,还可以“继承”多个类,那该多好呀?刚好,接口可以满足这个需求:在继承一个类之后,还可以实现多个接口;

可以说是抽象类的量变结果,也可以说是需求推动发展,总之,各有各的优势,取长补短嘛!
作者: djx900    时间: 2012-3-14 00:54
接口 就是 写框架的时候 埋颗雷  放条线

实现接口的时候  就是 找到那个线  (复写方法) 点火 ~~~~生效
作者: 四海为家    时间: 2012-3-14 01:22
接口和抽象类的相同点:它们都是不断向上抽取出来的一个抽象的内容,必须由子类去完成它们的方法体。
它们的区别有:
1:
抽象类只能被单继承,
接口可以被多实现,避免了单继承的局限性。
2:
抽象类中可以定义抽象方法和非抽象方法,它可以用于定义体系的基本共性内容。
接口中只能定义抽象方法,它主要用于对象的功能扩展。
3:
抽象类是继承关系,是is a关系。
接口是是实现关系,是like a关系。
4:
抽象类的中的成员修饰符都是自定义。
接口中的成员修饰符固定。
作者: a504079589    时间: 2012-3-14 02:47
可以,子类实现了接口, 就要实现接口中所有的方法, 抽象类除外,  但子类可以有自己特有的, 就等于对父类进行了扩展;
一个类可以实现多个接口,更好的支持多态;
作者: 王杰    时间: 2012-3-14 08:50
李晓旭 发表于 2012-3-13 23:46
我觉得子类就是为了重写或者扩展父类的功能而出现的新类
而接口是那些已经继承了父类特性的子类们,又找到 ...

接口弥补了类只支持单继承,接口可以多实现!
作者: 秦超    时间: 2012-3-14 11:14
原来如此~搞定
作者: 尹善波    时间: 2012-6-25 18:52
接口中是不能创建对象的,因为有抽象方法需要被类实现,子类对接口中的抽象方法全都覆盖后子类才可以实例化,否则子类为抽象类。
类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
接口与接口之间是可以有继承关系的。




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