黑马程序员技术交流社区

标题: 问一个有关继承和实现接口的问题。 [打印本页]

作者: 周四川    时间: 2012-4-29 14:35
标题: 问一个有关继承和实现接口的问题。
Java中,如果一个子类继承了一个父类的同时实现了一个接口,父类和接口中都有同一个方法,那么在子类中的这个方法是算谁的?父类还是接口?
作者: 杨志    时间: 2012-4-29 14:48
首先,如果父类中也有一个肯接口中一样在抽象方法。那么子类中就只会有一个方法。
那么就可以理解为,子类继承了父类的方法,如果父类不是抽象的。
而这个方法有刚好可以作为那个接口方法的实现。
如果是父类抽象是抽象的,那么就是子类先去实现了父类的抽象方法,然后这个子类同时也是
实现了那个接口。我看了那个注释,应该是父类的先去实现。
谢谢!
作者: 根号5    时间: 2012-4-29 14:50
哥们你找一个我看看 ,有这个情况吗?
你说的情况勉强可以这样理解,A类实现了某一个接口C,B类继承了A类又implements  A类所实现的接口,这样就会有相同的方法。你感觉这样有意思吗?
换做代码如下:
A implements  C
B extends A 同时 B implements  C  (这是比较直接的关系,有的可以有很多层继承,总之意思是一样的)
  
这种情况就没意思了吧   因为 B 继承了 A 这同时也意味着 B 实现了 C
作者: 毕博    时间: 2012-4-29 15:16
这样写虽然没有什么意思。。。

因为实现了接口,子类权限首先要大,要不报错。
而且必须复写这个方法,因为实现抽象的方法,否则也会报错。
同时要满足实现和继承的关系。
作者: 崔仁军    时间: 2012-4-29 16:21
1 子类继承了父类那么子类中同时也会有父类的方法 ,
2 子类实现了接口那么就得实现接口中的方法 ,
3 子类既继承了父类又实现了接口时,  如果接口中有和父类相同的方法时    ,子类中就会用继承的父类的这个方法来实现接口的这个方法,   
作者: 罗旭维    时间: 2012-4-29 21:10
java类不支持多继承,但一个接口可以继承多个接口,
楼主的意思我们知道,但可以改下说法就是如果一个接口继承了另外两个接口,
那两个接口有一个相同声明的方法,当一个类继承了这个接口,然后实现了那个方法的话,到底实现的是谁的方法?
但老实说,这个疑问没有任何意义,因为接口的方法没有实现,就算是上面的情况,两个接口具有同样的方法,这两个接口被一个类继承了
这个类实现了那个方法,但只要实现就好了,他属于谁都没关系,具体请楼主体会下接口在面向对象编程中的意义。
作者: 曾_强    时间: 2012-4-29 23:17
子类中的这个方法是算谁的???
楼主这个问题,若是继承,不是两个都可以算吗?都可以使用这个方法,那干嘛纠结于是谁的喃?
作者: 徐慧书    时间: 2012-5-1 11:48
对于实现接口,接口里的方法均是抽象方法,而继承父类,可能是父类的方法或是抽象类的抽象方法,假设共同方为:fun()
那么现在分为两种情况:
1继承和实现两个均为抽象方法
在这种情况下,子类必须重写这个相同的方法,你会发现这个重写(或是通过Override而来)的方法默认是来自接口里的。
2继承父类已经实现了的方法和接口里的抽象方法
由于面向对象的继承特性,所以子类已经拥有父类的fun()这个方法,那么这相当于已经实现了接口里的抽象方法fun()
所以子类可以不需要再写fun方法,当然也可以复写这个方法。
说这些,只是希望你能明白面向对象的一些思想
有问题继续交流哈





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