A类继承B类,B类继承C类,那A不就间接继承B,C类么?照这么说,何来单继承多继承的说法?
如题,A类继承B类,B类继承C类,那A不就间接继承B,C类么?照这么说,何来单继承多继承的说法?谢谢所以,java不存在多继承这一说法。有些人说java可以实现多个接口从...
如题,A类继承B类,B类继承C类,那A不就间接继承B,C类么?照这么说,何来单继承多继承的说法?谢谢
所以,java不存在多继承这一说法。 有些人说 java 可以实现多个接口 从而实现了 多继承。 这个不叫做 多继承, 实现多个接口就是实现多个接口, 实现多个接口 不等于 就是 多继承。 展开
所以,java不存在多继承这一说法。 有些人说 java 可以实现多个接口 从而实现了 多继承。 这个不叫做 多继承, 实现多个接口就是实现多个接口, 实现多个接口 不等于 就是 多继承。 展开
展开全部
首先多继承即一个子类可以有多个父类,它继承了多个父类的特性。 多继承可以看作是单继承的扩展。
java是具有单继承,不具有多继承,但有java具有多层继承一说,举个例子,只可以有一个父亲,但是父亲再有父亲也是可以的,现实中是这样的。
如果有多继承的话,在一个子类继承的多个父类中拥有相同方法,子类中有没有覆盖该方法,那么调用该方法时将产生歧义,无法判断应该调用哪个父类的方法。
正因为有以上的致命缺点,所以java中禁止一个类继承多个父类;
在接口中不能有实例变量,只能有静态的常量,不能有具体的方法(包含方法体),只能有抽象方法,因此也就摒弃了多继承的缺点。
对于一个类实现多个接口的情况,因为接口只有抽象方法,具体方法只能由实现接口的类实现,在调用的时候始终只会调用实现类的方法(不存在歧义),因此不存在 多继承的第二个缺点;而又因为接口只有静态的常量,但是由于静态变量是在编译期决定调用关系的,即使存在一定的冲突也会在编译时提示出错;而引用静态变量一般直接使用类名或接口名,从而避免产生歧义,因此也不存在多继承的第一个缺点。
对于一个接口继承多个父接口的情况也一样不存在这些缺点。 望对你有帮助。
---fyg
java是具有单继承,不具有多继承,但有java具有多层继承一说,举个例子,只可以有一个父亲,但是父亲再有父亲也是可以的,现实中是这样的。
如果有多继承的话,在一个子类继承的多个父类中拥有相同方法,子类中有没有覆盖该方法,那么调用该方法时将产生歧义,无法判断应该调用哪个父类的方法。
正因为有以上的致命缺点,所以java中禁止一个类继承多个父类;
在接口中不能有实例变量,只能有静态的常量,不能有具体的方法(包含方法体),只能有抽象方法,因此也就摒弃了多继承的缺点。
对于一个类实现多个接口的情况,因为接口只有抽象方法,具体方法只能由实现接口的类实现,在调用的时候始终只会调用实现类的方法(不存在歧义),因此不存在 多继承的第二个缺点;而又因为接口只有静态的常量,但是由于静态变量是在编译期决定调用关系的,即使存在一定的冲突也会在编译时提示出错;而引用静态变量一般直接使用类名或接口名,从而避免产生歧义,因此也不存在多继承的第一个缺点。
对于一个接口继承多个父接口的情况也一样不存在这些缺点。 望对你有帮助。
---fyg
展开全部
打个很肤浅的比喻,就是一个人只可以有一个爸爸,而就只继承他爸爸的遗产,而不能继承别人爸爸的遗产 这就是单继承。还有就是他爸爸同样可以继承他爷爷的遗产,所以他就间接的继承他爷爷的遗产。这样就可以看出没有多继承
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
太深奥了,这是哲学问题,适合那群吃饱饭没事干的人研究
追问
可这是面试题目啊,你回答不上就没工作,没工作就没饭吃。
追答
我了个去,什么公司的呀。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
仔细想想就知道了。A是C的子类吗?充其量不过是"孙子类"而已。
所以你的说法不过是被偷换概念了
所以你的说法不过是被偷换概念了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单继承是说只有一个直接继承的类,就是只有一个直接的父亲;
多继承就是他有多个直接“父亲”。
多继承就是他有多个直接“父亲”。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询