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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

谁能帮我搞明白extend和implement用的时候区别在什么地方?

9 个回复

倒序浏览
继承和实现。
interface 用于定义接口   
接口不能创建对象,因为它有抽象方法,所以必须要搞一个类来实现它。
当类实现了接口之后,可以用这个类来创建接口类型的对象。
类于类之间是继承关系,类于接口之间是实现关系implements
类于接口为什么不是继承了呢?类为什么就不能实现类呢?
类为什么要继承类,是因为父类之中有非抽象内容可以直接拿过来用,这叫继承,子类不用太辛苦,直接拿过来用就可以。
而到了接口,这里边的方法都是抽象的,这时候子类一继承,它就要全部都复写,所以用更确切的方式表示,
子类要将接口中的东西全都实现后才能实例化。
所以说接口中没有一点能给子类用的东西,所以子类要将这些抽象的方法实现后才能用。
所以,接口需要被类实现,子类要对接口中的抽象方法全都覆盖后,子类才可以实例化
接口中的成员都是public的。否则可能会出现其实现类无法覆盖其中的方法的现象。

回到你的话题,extends和implements是两种不同的思想。各有各的方便。区别就在于他们的子类或者实现类的具体动作是不同的。继承可以直接拿来用,实现就必须得覆写所有的方法。不管你用的着还是用不着,你必须得覆写了,否则你的实现类也不能new对象出来。
在API中还有一种这样的类,它空覆写了接口中的所有抽象方法,然后让子类去复写其中需要的方法就行了。这种类叫做适配器。Adapter,这种思想很值得我们参考和借鉴。对开发会很有帮助

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,
JAVA 中不支持多重继承,但是可以用接口来是实现,这时就用到了implements,继承只能继承一个类
但implements可以实现多个接口,用逗号分开就行了

比如:class A extends B implements C, D,E
回复 使用道具 举报
对于class而言,extends是用于(单)继承一个类(class),而implements用于多实现。一个是继承类 ,一个是“继承”接口!
回复 使用道具 举报
理论楼上讲的很详细了,我只能简单的说一下个人理解啊:

extends  扩展的意思;
implements 是实现的意思;
扩展当然是对父类的扩展啊,
实现自然是实现的接口啊。

希望对你有所帮助。
回复 使用道具 举报
extends是去继承一个类。
implements是去实现一个接口。
用extends是从一个已有的类派生出新的类,子类具有父类的一般特性,以及自身特殊的特性
继承需要符合的关系:is-a
用implements是在扩展一个类的功能,接口提供一个统一的规范,供必要的类去实现。
接口是一些方法特征的集合,但没有方法的实现
Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为
不必符合is-a的关系。
回复 使用道具 举报
    extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了
比如
class A extends B implements C,D,E
回复 使用道具 举报
谢谢各位,说的比较深刻
回复 使用道具 举报
extends:继承
class类:可以单继承,比如A继承B,B继承C,
interface接口:可以多重继承,比如A继承B,C也可以继承B
子类可以继承父类的成员变量,方法等,并且可以实现方法的重写覆盖。

implements:实现
同一个类可以实现多个接口
class A implements B,C,D  
实现接口的类必须重写接口中的所有方法,因为接口内的方法是抽象的,没有实体
这样做的原因是,A既可以继承父类的属性,有可以实现与其他类共性的方法
class Zi extends Fu implements A,B,C

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
实现Runnable接口和继承Thread的区别是, 继承Thread: 线程代码存放在Thread紫烈的run()方法中,  实现Runnable接口: 线程代码存放在接口子类的run()方法中;
实现Runnable的好处: 避免了单继承的局限性, 在定义线程的时候, 建立使用实现的方式;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马