java 单继承 Object类?

HelloWorld280 2009-11-10 11:16:46
众所周知,j2se中每个类都有个默认父类,即Object,假设定义个动物类,animal,其中比如有个cat类继承animal类,显然cat类也继承Object类,那这个cat类不是有两个父类了??(虽然说,animal类也继承Object类)
...全文
263 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
iguowei 2010-12-08
  • 打赏
  • 举报
回复
同意19楼的观点
timeriver_wang 2009-11-11
  • 打赏
  • 举报
回复
这个牛角尖钻的好,
要知道,java并不是完美的,是可以接受的

就想数学里面的“可去不连续点”一样
config_man 2009-11-11
  • 打赏
  • 举报
回复
Object对于cat来说,是超类,不是父类
swandragon 2009-11-11
  • 打赏
  • 举报
回复
cat 儿子
animal 父亲
Object 爷爷
kuruby 2009-11-11
  • 打赏
  • 举报
回复
animal->obgect
cat->animal->object

我是这样理解的。没有出现extends的时候父类就是object.
出现了extends后,object就是间接父类了。
一级一级的传递,总有一个节点是没使用extends的。
戒子猪 2009-11-11
  • 打赏
  • 举报
回复
当cat继承animal的时候,它的父类已经被显式改变了,应该这样讲,这种情况下它的父类已经直接被显式改变称为了animal,而也只有animal是Object的直接子类了,整个继承树是这样一级一级地过来的,楼主这个问题是有点钻牛角尖!
  • 打赏
  • 举报
回复
[Quote=引用楼主 helloworld280 的回复:]
众所周知,j2se中每个类都有个默认父类,即Object,假设定义个动物类,animal,其中比如有个cat类继承animal类,显然cat类也继承Object类,那这个cat类不是有两个父类了??(虽然说,animal类也继承Object类)
[/Quote]

谁跟你说的是这样继承的啊?

实际上是 Animal 隐式继承了 Object 类,而 Cat 又继承了 Animal 类,根本不是 Cat 去继承了 Object。

或者可以这样说,有 extends 时直接继承父类,无 extends 时隐式继承 Object 类。
三界五行外 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 helloworld280 的回复:]
众所周知,j2se中每个类都有个默认父类,即Object,假设定义个动物类,animal,其中比如有个cat类继承animal类,显然cat类也继承Object类,那这个cat类不是有两个父类了??(虽然说,animal类也继承Object类)
[/Quote]
请你先学学什么是继承,先弄清楚父类和直接父类的区别。
hui94781674 2009-11-11
  • 打赏
  • 举报
回复
java只能继承一个,但是可以通过类似父亲爷爷实现多继承。。。
FlashDragon 2009-11-11
  • 打赏
  • 举报
回复
java中默认继承是在没有显示说明继承那个父类时,这些类默认是继承Object类,而用显示说明继承时,就不存在默认类了。
smallbear923 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 justinavril 的回复:]
你硬要说有2个父类 也没办法

Java之所以说是单继承,是在语法上约束了extends关键字之后只能有一个类名存在;而继承之后不可以被别的类再继承,岂不是这颗继承树只有2层了?
[/Quote]
哦耶~
  • 打赏
  • 举报
回复
java是单根继承。
justinavril 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sforiz 的回复:]
引用 3 楼 swandragon 的回复:
cat    儿子
animal 父亲
Object 爷爷


一个类只有一个父类,Object 是父类的父类,也可以间接使用其方法
[/Quote]
你理解错了吧?子类可以调用父类的方法,如果没有重写的话;但是父类不能调用子类有,而父类没有的方法。最简单的例子,每一个类都有一个默认的toString方法,这个方法是在Object类里实现的。
justinavril 2009-11-11
  • 打赏
  • 举报
回复
你硬要说有2个父类 也没办法

Java之所以说是单继承,是在语法上约束了extends关键字之后只能有一个类名存在;而继承之后不可以被别的类再继承,岂不是这颗继承树只有2层了?
whut0802 2009-11-11
  • 打赏
  • 举报
回复
java是单继承的。
sforiz 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 config_man 的回复:]
Object对于cat来说,是超类,不是父类
[/Quote]

呵呵,超类就不是父类了吗?父类、超类、基类是同一个概念吧!不同的叫法
sforiz 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 swandragon 的回复:]
cat    儿子
animal 父亲
Object 爷爷
[/Quote]

一个类只有一个父类,Object 是父类的父类,也可以间接使用其方法
scarjia 2009-11-11
  • 打赏
  • 举报
回复
Object类的老祖宗。。。。
jokerdx 2009-11-10
  • 打赏
  • 举报
回复
不是,只有animal类是父类,object是animal的父类,继承关系是持续的
reeves101 2009-11-10
  • 打赏
  • 举报
回复
我想,你是不是钻牛角尖了。
你写个类需要你去显式的继承Object了吗。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧