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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 落叶归根 于 2013-9-10 09:30 编辑

      接口的子类必须实现接口中的所有方法?    如果一个类实现接口没有实现其中的全部方法  那么这个类是抽象类  为什么要全部实现其中的方法。

评分

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

查看全部评分

12 个回复

正序浏览
楼主,您好!

如果您的问题解决了,请把您问题的未解决更改为已解决

谢谢合作!

回复 使用道具 举报
hmwudizl91zl 发表于 2013-9-8 21:16
这个其实就是接口和抽象类的区别之一,
接口只能被单继承,也就是一个类只能继承一个接口
抽象类就没有这个 ...

不是单继承多实现的吗?
回复 使用道具 举报
当在现实生活中我们遇到一类比较模糊、不清楚它是干嘛的时候,我们就可以抽象的描述它。比如电脑
当一个类里面全都是抽象的方法时,我们可以把它定义为接口。例如电脑上的各种插槽
当我们具体知道那些方法是干什么时,我们可以用子类来实现这些方法。

当然子类是一定要全部实现接口里方法的

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
创建一个类就是为了要使用,一般情况下使用就必须得创建对象,要创建对象首先抽象类是不行的。如果一个实现了接口的子类没有覆盖其中的全部方法,那么这个类就是抽象类,就不能创建对象。因此就没有是实现接口的价值了。

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
是的,因为接口中的方法全都是抽象方法,接口本身可以理解为一个特殊的抽象类,其他的类去实现接口,就
必须覆写所有的抽象方法,如果没有复写所有的抽象方法,就意味着这个类继承了接口的一些抽象方法,就是一个抽象类,其实,这本身就是一种设计模式,就是说如果你后面不需要全部的接口中的方法,你的中间就可以用一个抽象类去实现接口,然后然后将不需要的抽象方法如:接口中是public void show();,你可以再抽象类中:public void show(){}然后,其他需要用到的抽象方法就不用去覆写,后面子类再覆写就可以了,这就是适配器模式

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 jadeite 于 2013-9-8 21:27 编辑

接口和抽象类的区别:
共性:都是不断抽取出来的抽象概念;
区别:
1)抽象类体现继承关系,一个类只能单继承;
    接口体现是实现关系,一个类可以多实现;
2)抽象是继承,接口是实现;
3)抽象类定义基本共性功能;接口定义对象扩展功能;
4)抽象类可以定义非抽象方法供子类使用;接口的方法都是抽象的,接口中的成员都有固定的修饰符 public static final

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报

接口和抽象类的区别:
共性:都是不断抽取出来的抽象概念;
区别:
1)抽象类体现继承关系,一个类只能单继承;
    接口体现是实现关系,一个类可以多实现;
2)抽象是继承,接口是实现;
3)抽象类定义基本共性功能;接口定义对象扩展功能;
4)抽象类可以定义非抽象方法供子类使用;接口的方法都是抽象的,接口中的成员都有固定的修饰符 public static final
回复 使用道具 举报
hmwudizl91zl 发表于 2013-9-8 21:16
这个其实就是接口和抽象类的区别之一,
接口只能被单继承,也就是一个类只能继承一个接口
抽象类就没有这个 ...

抽象类用的是extends ,接口是implements;亲不要误导人啊!
回复 使用道具 举报
是要全部实现的吧  我理解是接口中的方法是要实现它的类所必须要具备的方法,就好像生物必须要具有生命这个方法,如果一个对象是生物那他就必须实现具有生命的方法,接口中的方法是要实现他的子类所必须具备的方法,所以要全部实现

评分

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

查看全部评分

回复 使用道具 举报
这个其实就是接口和抽象类的区别之一,
接口只能被单继承,也就是一个类只能继承一个接口
抽象类就没有这个限定,可以继承多个抽象类,而且不一定要实现里面所有的方法
主要看你具体看你怎末用了。
至于为什么实现一个接口必须要实现接口里面所有的方法?
好比你内存条插入插槽你你难道只插一部分就能用了还是要全部插进去才能用呢?道理其实是一样的!~

点评

一个类可以实现多个接口,哥们你是写错了还是记错了  发表于 2013-9-8 22:56

评分

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

查看全部评分

回复 使用道具 举报 0 1
不实现接口的全部方法就是抽象类,就不能创建实例,我们定义一个类实现接口就是为了创建实例来用的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马