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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周四川 中级黑马   /  2012-4-29 14:35  /  2907 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java中,如果一个子类继承了一个父类的同时实现了一个接口,父类和接口中都有同一个方法,那么在子类中的这个方法是算谁的?父类还是接口?

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

7 个回复

倒序浏览
首先,如果父类中也有一个肯接口中一样在抽象方法。那么子类中就只会有一个方法。
那么就可以理解为,子类继承了父类的方法,如果父类不是抽象的。
而这个方法有刚好可以作为那个接口方法的实现。
如果是父类抽象是抽象的,那么就是子类先去实现了父类的抽象方法,然后这个子类同时也是
实现了那个接口。我看了那个注释,应该是父类的先去实现。
谢谢!
回复 使用道具 举报
哥们你找一个我看看 ,有这个情况吗?
你说的情况勉强可以这样理解,A类实现了某一个接口C,B类继承了A类又implements  A类所实现的接口,这样就会有相同的方法。你感觉这样有意思吗?
换做代码如下:
A implements  C
B extends A 同时 B implements  C  (这是比较直接的关系,有的可以有很多层继承,总之意思是一样的)
  
这种情况就没意思了吧   因为 B 继承了 A 这同时也意味着 B 实现了 C
回复 使用道具 举报
这样写虽然没有什么意思。。。

因为实现了接口,子类权限首先要大,要不报错。
而且必须复写这个方法,因为实现抽象的方法,否则也会报错。
同时要满足实现和继承的关系。
回复 使用道具 举报
1 子类继承了父类那么子类中同时也会有父类的方法 ,
2 子类实现了接口那么就得实现接口中的方法 ,
3 子类既继承了父类又实现了接口时,  如果接口中有和父类相同的方法时    ,子类中就会用继承的父类的这个方法来实现接口的这个方法,   
回复 使用道具 举报
java类不支持多继承,但一个接口可以继承多个接口,
楼主的意思我们知道,但可以改下说法就是如果一个接口继承了另外两个接口,
那两个接口有一个相同声明的方法,当一个类继承了这个接口,然后实现了那个方法的话,到底实现的是谁的方法?
但老实说,这个疑问没有任何意义,因为接口的方法没有实现,就算是上面的情况,两个接口具有同样的方法,这两个接口被一个类继承了
这个类实现了那个方法,但只要实现就好了,他属于谁都没关系,具体请楼主体会下接口在面向对象编程中的意义。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
子类中的这个方法是算谁的???
楼主这个问题,若是继承,不是两个都可以算吗?都可以使用这个方法,那干嘛纠结于是谁的喃?
回复 使用道具 举报
对于实现接口,接口里的方法均是抽象方法,而继承父类,可能是父类的方法或是抽象类的抽象方法,假设共同方为:fun()
那么现在分为两种情况:
1继承和实现两个均为抽象方法
在这种情况下,子类必须重写这个相同的方法,你会发现这个重写(或是通过Override而来)的方法默认是来自接口里的。
2继承父类已经实现了的方法和接口里的抽象方法
由于面向对象的继承特性,所以子类已经拥有父类的fun()这个方法,那么这相当于已经实现了接口里的抽象方法fun()
所以子类可以不需要再写fun方法,当然也可以复写这个方法。
说这些,只是希望你能明白面向对象的一些思想
有问题继续交流哈

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1 赞一个!

查看全部评分

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