黑马程序员技术交流社区

标题: java的继承和实现的区别? [打印本页]

作者: chenzhiyuan    时间: 2014-5-23 11:07
标题: java的继承和实现的区别?
java的继承和实现的区别?有哪些,怎么用,

作者: chenzhiyuan    时间: 2014-5-23 11:12
java中单继承,多实现,继承是:一个类派生出的一个类。用着extends关键字可以继承一个类,实现:如果有多个接口,用一个类,用到关键字implements,可以实现多给接口,把接口所有的方法都实现
作者: jiang_ming    时间: 2014-5-23 11:31
java是单继承,多实现;只能继承一个父类,但可以实现多个接口,接口就实现了扩展功能
作者: chenzhiyuan    时间: 2014-5-23 11:36
是的没错,
作者: 陨落″烟雨。    时间: 2014-5-23 12:33
继承是类和类之间的关系。(单继承)
实现是类和接口的关系。(可以多实现)
补充:接口和接口也是继承的关系。(可以多继承)

想搞清楚的话,最简单的就是你要了解接口里面都是些什么,抽象类中又有写什么?普通类中又有些什么?

接口:也可以说是一种规则,要想用接口中的方法,就去实现它。
继承:很像父子关系,A类继承B类,就可以拿到B类中的方法和属性,就可以直接拿来用。


作者: 想飞的鱼    时间: 2014-5-23 22:28
是的,楼上们都说的很清楚,单继承,多实现。另外我说说他们的其他一些细节特点,

继承 关键字 extends
1.通过继承可以简化类的定义
2.Java只支持单继承,即一个子类只能有一个父类
3.但是可以有多层继承,即一个类可以继承莫一个类的子类
4.子类继承父类所有的成员变量和方法,但不继承父类的构造方法,在子类的构造方法中可以使用super(参数列表)调用父类的构造方法
5.如果子类的构造方法没有显式的调用父类的构造方法,也没有使用this关键字调用重载的其他构造方法,则在产生子类的实力对象时,系统默认调用父类无参数的构造方法

实现 implements
说到实现就要说到接口,对于接口,
1.我们可以用extends继承一个已有的接口
2.我们也可以定义一个类,用implements去实现一个接口中的所有方法
3.还可以定义一个抽象类,用implements实现一个接口中的部分方法

所以综上所述,一个类可以在继承一个父类的同时,实现一个或多个接口,从而达到"多继承"的目的,extends关键字必须位于implements关键字前
作者: Jero    时间: 2014-5-23 22:31
继承说简单点 就是  只能有一个爸爸。

作者: fenzheng    时间: 2014-5-23 23:09
本帖最后由 fenzheng 于 2014-5-23 23:11 编辑

在继承:如果多个类的某个部分的功能相同,那么可以抽象出一个类出来,把他们的相同部分都放到父类里,让他们都继承这个类。  实现:如果多个类处理的目标是一样的,但是处理的方法方式不同,那么就定义一个接口,也就是一个标准,让他们的实现这个接口,各自实现自己具体的处理方法来处理那个目标继承只可以单继承,而实现可以有多实现这就是区别,区别蛮大的。
作者: 吴海平    时间: 2014-5-24 00:06
单继承,多实现
作者: gentleman    时间: 2014-5-24 07:32
单继承,多实现。
作者: TS__likewise    时间: 2014-5-24 08:44
继承针对类,实现针对接口。
单继承,多实现。
继承就像是一大堆不一样的绿色蔬菜,绿色就是他们的共同点,
实现就是有很多的西红柿,你有不一样的吃法,但最终目的都是吃。
父类(SuperClass)和 子类(SonClass)。
父类的非私有化属性和方法可以默认继承到子类。
(简单地说就是,你爸爸的小三属于你爸爸的私有,你不能继承)
Class Son extends Father{
}
而如果父类中的私有方法被子类调用的话,则编译报错。

父类的构造方法子类不可以继承,更不存在覆盖的问题。(非构造方法可以)
如果子类访问父类的构造方法,则在编译的时候提示访问不到该方法。
JAVA中不允许多继承,一个类有且只有一个父类(单继承)。
JAVA的数据结构为树型结构,而非网状。(JAVA通过接口和内部类实现多继承)

作者: 流沙    时间: 2014-5-24 10:58
视频里边说的好清楚啊!
作者: 周俊波    时间: 2014-5-24 11:12
这个其实google 百度更好




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