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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梁健 黑马帝   /  2011-11-17 22:55  /  2102 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有些接口会声明一些方法或者常量在里面,可为什么很多接口就只定义了一个接口名,{}里面却是空的。那接口在这里又起了什么作用呢

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

9 个回复

倒序浏览
归纳的作用,为之后改进留一手后招。
定义一个空接口,那么它的实现类可以随便写。
一旦有一天,我想把这些实现类都统一加一个方法,我要是挨个去找很容易漏掉1-2个,到时候调用起来会出错,尤其是反射调用的时候。
那么我不如就在这个空接口中加一个定义进去,那么它所有的实现类就必须都强制的更改,否则就会报错。
这样不是很方便么。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
清秋 黑马帝 2011-11-17 23:02:33
藤椅
视频中讲到这些

        接口,初期可以理解为一个特殊的抽象类
        当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示

        接口定义时,格式特点:
        1.接口中常见定义:常量,抽象方法
        2.接口中的成员都有固定修饰符
                常量:public static final
                方法:public abstract

        接口 不可以创建对象的,因为有抽象方法
        需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化
        否则子类是一个抽象类

楼主说的。接口{}里是空,有什么例子没,让你的问题更清晰些。

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
咪咪 来自手机 黑马帝 2011-11-17 23:11:39
板凳
接口主要就是为了程序的扩展性而出现的,所以如果里面定义的太复杂的话就不用接口了,出现接口弥补了类不能一个子类继承多个父类的缺陷。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
理论上来讲,楼主所述“很多接口就只定义了一个接口名,{}里面却是空的”的种情况是不被允许存在的,应为你加了  {}  那就意味着有方法体,尽管方法体是不含代码的,这种接口声明方式是不被允许出现在接口里的

Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
为以后的扩展留空间。
回复 使用道具 举报
高双武 黑马帝 2011-11-18 07:21:31
7#
可以利用多态特性
回复 使用道具 举报
赵磊5 黑马帝 2011-11-18 07:53:33
8#
java不允许多重继承,也就是说一个子类只能有一个父类.为了弥补这点不足,java允许实现多个接口.接口中的方法没有实体,接口中的方法都是abstract的,可以看作是一个特殊的抽象类。如果一个类实现了这个接口,那么它必须实现这个接口中的所有方法才可以创建对象,否则还是一个抽象类。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
方便以后修改添加功能用的,就是传说中的提高扩展性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马