哪个大神知道java中类的继承 和 接口的继承在JVM中有什么区别 ? 在线等!!
RT,50分,在线等!!我想知道的是类的继承和接口的多继承在JVM中的运行过程有什么不同!!!!迷茫很久找不到相关资料。。。。...
RT,50分,在线等!!
我想知道的是类的继承和 接口的多继承在JVM中的运行过程有什么不同!!!! 迷茫很久 找不到相关资料。。。。 展开
我想知道的是类的继承和 接口的多继承在JVM中的运行过程有什么不同!!!! 迷茫很久 找不到相关资料。。。。 展开
3个回答
展开全部
类和接口的区别就是类中的方法可以有具体的运行过程,而接口中的方法只是声明了一下,也就相当于只有一个名字,并没有具体的运行过程。
子类继承了父类后可以直接调用父类中的方法,而如果子类想要用接口中的方法就必须得自己实现。
现在有这么一种情况,如果A类继承了B类和C类,而B和C里面都有一个叫D的方法,当在A类中用super.D()这种方式调用D的话,请问是调用了B中的D还是C中的D,分不清了吧。
而如果A继承了E接口和F接口,E和F中都有一个G方法,当A想要用G方法时都必须得自己实现,也就是必须在A中重新写G方法。所以无论是E还是F,他们的G方法在A中都只有一种具体的实现方法,你可以说这个方法是实现的E中的G,也可以说是实现了F中的G,因为实际运行的都是A中具体实现的过程,不存在上面那种分不清的情况。
这就是Java只允许单继承却能实现多接口的原因。
子类继承了父类后可以直接调用父类中的方法,而如果子类想要用接口中的方法就必须得自己实现。
现在有这么一种情况,如果A类继承了B类和C类,而B和C里面都有一个叫D的方法,当在A类中用super.D()这种方式调用D的话,请问是调用了B中的D还是C中的D,分不清了吧。
而如果A继承了E接口和F接口,E和F中都有一个G方法,当A想要用G方法时都必须得自己实现,也就是必须在A中重新写G方法。所以无论是E还是F,他们的G方法在A中都只有一种具体的实现方法,你可以说这个方法是实现的E中的G,也可以说是实现了F中的G,因为实际运行的都是A中具体实现的过程,不存在上面那种分不清的情况。
这就是Java只允许单继承却能实现多接口的原因。
追问
虽然不是我想要的 但是你说的是最好的 分给你吧
展开全部
我新手,但我的理解是:
类不允许多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?
但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以多继承。
类不允许多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?
但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以多继承。
追问
这个我很清楚 但是在JVM中有一个方法区,类和接口在各自的继承中在jvm到底是怎么样的 我最想知道的是这个
追答
那你研究的有点深了,爱莫能助,抱歉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类只会单继承,接口本身没有数据,只有声明,会去找所有实现
具体的没必要深究吧?如果只是做开发的话
具体的没必要深究吧?如果只是做开发的话
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询