众所周知,j2se中每个类都有个默认父类,即Object,假设定义个动物类,animal,其中比如有个cat类继承animal类,显然cat类也继承Object类,那这个cat类不是有两个父类了??(虽然说,animal类也继承Object类)

解决方案 »

  1.   

    我想,你是不是钻牛角尖了。
    你写个类需要你去显式的继承Object了吗。
      

  2.   

    不是,只有animal类是父类,object是animal的父类,继承关系是持续的
      

  3.   

    cat    儿子
    animal 父亲
    Object 爷爷
      

  4.   

    Object对于cat来说,是超类,不是父类
      

  5.   

    这个牛角尖钻的好,
    要知道,java并不是完美的,是可以接受的就想数学里面的“可去不连续点”一样
      

  6.   


    一个类只有一个父类,Object 是父类的父类,也可以间接使用其方法
      

  7.   

    你硬要说有2个父类 也没办法Java之所以说是单继承,是在语法上约束了extends关键字之后只能有一个类名存在;而继承之后不可以被别的类再继承,岂不是这颗继承树只有2层了?
      

  8.   

    你理解错了吧?子类可以调用父类的方法,如果没有重写的话;但是父类不能调用子类有,而父类没有的方法。最简单的例子,每一个类都有一个默认的toString方法,这个方法是在Object类里实现的。
      

  9.   

    java中默认继承是在没有显示说明继承那个父类时,这些类默认是继承Object类,而用显示说明继承时,就不存在默认类了。
      

  10.   

    java只能继承一个,但是可以通过类似父亲爷爷实现多继承
      

  11.   


    谁跟你说的是这样继承的啊?实际上是 Animal 隐式继承了 Object 类,而 Cat 又继承了 Animal 类,根本不是 Cat 去继承了 Object。或者可以这样说,有 extends 时直接继承父类,无 extends 时隐式继承 Object 类。
      

  12.   

    当cat继承animal的时候,它的父类已经被显式改变了,应该这样讲,这种情况下它的父类已经直接被显式改变称为了animal,而也只有animal是Object的直接子类了,整个继承树是这样一级一级地过来的,楼主这个问题是有点钻牛角尖!
      

  13.   

    animal->obgect
    cat->animal->object我是这样理解的。没有出现extends的时候父类就是object.
    出现了extends后,object就是间接父类了。
    一级一级的传递,总有一个节点是没使用extends的。