如题,A类继承B类,B类继承C类,那A不就间接继承B,C类么?照这么说,何来单继承多继承的说法?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/03 01:52:56
如题,A类继承B类,B类继承C类,那A不就间接继承B,C类么?照这么说,何来单继承多继承的说法?
所以,java不存在多继承这一说法.有些人说 java 可以实现多个接口 从而实现了 多继承.这个不叫做 多继承,实现多个接口就是实现多个接口,实现多个接口 不等于 就是 多继承.
所以,java不存在多继承这一说法.有些人说 java 可以实现多个接口 从而实现了 多继承.这个不叫做 多继承,实现多个接口就是实现多个接口,实现多个接口 不等于 就是 多继承.
首先多继承即一个子类可以有多个父类,它继承了多个父类的特性. 多继承可以看作是单继承的扩展.
java是具有单继承,不具有多继承,但有java具有多层继承一说,举个例子,只可以有一个父亲,但是父亲再有父亲也是可以的,现实中是这样的.
如果有多继承的话,在一个子类继承的多个父类中拥有相同方法,子类中有没有覆盖该方法,那么调用该方法时将产生歧义,无法判断应该调用哪个父类的方法.
正因为有以上的致命缺点,所以java中禁止一个类继承多个父类;
在接口中不能有实例变量,只能有静态的常量,不能有具体的方法(包含方法体),只能有抽象方法,因此也就摒弃了多继承的缺点.
对于一个类实现多个接口的情况,因为接口只有抽象方法,具体方法只能由实现接口的类实现,在调用的时候始终只会调用实现类的方法(不存在歧义),因此不存在 多继承的第二个缺点;而又因为接口只有静态的常量,但是由于静态变量是在编译期决定调用关系的,即使存在一定的冲突也会在编译时提示出错;而引用静态变量一般直接使用类名或接口名,从而避免产生歧义,因此也不存在多继承的第一个缺点.
对于一个接口继承多个父接口的情况也一样不存在这些缺点. 望对你有帮助.
---fyg
java是具有单继承,不具有多继承,但有java具有多层继承一说,举个例子,只可以有一个父亲,但是父亲再有父亲也是可以的,现实中是这样的.
如果有多继承的话,在一个子类继承的多个父类中拥有相同方法,子类中有没有覆盖该方法,那么调用该方法时将产生歧义,无法判断应该调用哪个父类的方法.
正因为有以上的致命缺点,所以java中禁止一个类继承多个父类;
在接口中不能有实例变量,只能有静态的常量,不能有具体的方法(包含方法体),只能有抽象方法,因此也就摒弃了多继承的缺点.
对于一个类实现多个接口的情况,因为接口只有抽象方法,具体方法只能由实现接口的类实现,在调用的时候始终只会调用实现类的方法(不存在歧义),因此不存在 多继承的第二个缺点;而又因为接口只有静态的常量,但是由于静态变量是在编译期决定调用关系的,即使存在一定的冲突也会在编译时提示出错;而引用静态变量一般直接使用类名或接口名,从而避免产生歧义,因此也不存在多继承的第一个缺点.
对于一个接口继承多个父接口的情况也一样不存在这些缺点. 望对你有帮助.
---fyg
java:类A已经继承类B,由于业务的需要还要继承类C ,怎么实现?
java中的类c继承了b,b继承了a,c可以直接调用a的方法吗?怎么调用.
对A、B两个类进行多重继承得到派生类C,则创建派生类C的对象时,从基类B中继承过来的成员变量由()类的构造函数进行初始化
java中假设B继承A,C继承B 下面A a=new C();与C a=new C()有区别吗?多态到底是什么意思.
如果有基类A,B,类C继承自这两个类,但是a,b两个类有重名函数,这样合乎语法吗
Java A b = new B(); B继承A .
java继承问题:类A继承类B,并且类A和类B都有各自的构造方法,这时候new A(),首先执行的是哪一个构造方法
以下说法错误的是()A.五星红旗是对五色旗的继承B.《中华人民共和国宪法》是对《共同纲领》的继承和发展C.我国的“全国人
继承Thread类定义线程类A,计算并输出1—1000内的所有素数,继承Thread类定义线程类B,输出1000个0—0
这道多选题选什么?多选题:> 应用文,特别是公文,在文体格式上具有().A、一定的历史继承性 B、相对稳定 C、约定性
请问C语言中的类,继承,链表,算法的定义(名词解释)是什么?
社会主义职业道德与传统职业道德之间没有必然的关系,不具备继承性. A. 错误 B. 正确