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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 呆呆呆 中级黑马   /  2013-11-23 10:04  /  1189 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 呆呆呆 于 2013-11-24 10:39 编辑

继承和实现有什么区别?
除了继承只支持单继承,  实现可以有多个接口外.
他们还有别的区别吗?

评分

参与人数 2技术分 +1 黑马币 +4 收起 理由
FFF + 1 鼓励新同学发贴!+1
枫儿 + 4 神马都是浮云

查看全部评分

4 个回复

倒序浏览
接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口。
回复 使用道具 举报
表面的区别就是单继承多实现
继承只能继承父类的公有属性与公有方法。如果父类有抽象方法,子类也必须实现,当然如果子类也是抽象类则不需要。
实现则需要其实现其接口的子类在内部覆写接口中的抽象方法。
简单来说 :根据我的理解,继承就是从父类那里得到东西,如儿子继承父亲的遗产什么的,而实现就是有所谓的父债子还的感觉,子类必须实现其功能。
当然两者其实是有很多相同的地方,比如继承的是个抽象类,则必须实现其抽象方法,而实现接口也可以自由地使用其接口中的常量。
这个还是要靠自己多理解的。

评分

参与人数 1黑马币 +2 收起 理由
枫儿 + 2 赞一个!

查看全部评分

回复 使用道具 举报
继承:1.如果多个类的某个部分的功能相同,那么可以抽象出一个类出来,把他们的相同部分都放到父类里,让他们都继承这个类。2.java类只支持单继承,用关键字extends,但存在多重继承的机制。3.接口继承接口的话,是支持多继承的,它可以不实现父接口中的方法并声明自己的新方法

实现:1.如果多个类处理的目标是一样的,但是处理的方法方式不同,那么就定义一个接口,也就是一个标准,让他们实现这个接口,各自实现具体的处理方法来处理那个目标。2.类实现接口时一定要实现接口中声明的方法。3.接口本身只是定义了几个final的变量和几个方法,没有任何实际的意义,具体的实现还是要在实现它的类中进行

希望能帮到你。。。

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
FFF + 1 下次要带上例子哦~
枫儿 + 2 赞一个!

查看全部评分

回复 使用道具 举报

     很多时候一个子类并不需要父类的所以特征,它可能只是需要其中的某些特征,由于继承,父类所

有的特征都有了,需要和不需要的特征都具备了 ,而子类实际上是不需要的,那么在多重继承时,很

容易因为这些不必要的特征发生混淆引发错误。虽然java语言中,在我看来对父类中的方法方法规定了

限制比如修饰符 private protected 来使用父类的方法。
   举一个例子
   我有一只老虎,我希望我的老虎能够抓老鼠,所以它向猫学习(继承),可是猫会吃鱼啊,但是我又

不想老虎偷吃我家的鱼,所以我又不想老虎向猫学习吃鱼本领,怎么办,限制(修饰符)就出现了,我和

猫谈条件,猫可以教老虎吃鱼本领,但是猫得给老虎教本领的时候忽悠老虎,说“我教你吃鱼本领,你

却不能再你主人家吃鱼”,意见达成,我既能让我老虎帮我抓老鼠,又不让他祸害我家的鱼。但是这样很麻烦

而在我看来接口就好多了,猫有两个接口,一个是吃鱼,一个是抓老鼠,我只需要我的老虎抓老鼠,那

么我就只要我的老虎实现抓老鼠的接口就行了,因此我认为接口更加灵活,所以我觉得在很多地方不必要用继承的时候就就用接口吧。

这是我当时看面向对象思想的一点心得

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
FFF + 1 鼓励新同学的到来~!
枫儿 + 2 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马