java 的this super 都是分别在哪个类中定义的??

super_tiger 2009-10-01 03:15:39
如题,大虾指教~
...全文
230 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
jamessir 2009-10-02
  • 打赏
  • 举报
回复
一楼的解释太贴切了!
bigbro001 2009-10-02
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 super_tiger 的回复:]
super和this都只是关键字,他们各自调用超类和本类的方法。这些方法只限于构造函数吗??有参数/无参的构造函数。
[/Quote]
除了调用各自的构造函数
也可以通过super加上点操作符(.)调用父类中public,protected,package default(同包内的)修饰的函数/方法,以及访问父类中public,protected,package default(同包内的)修饰的成员变量
通过this加点操作符,调用本类的所有的方法,访问所有的成员变量(包括非静态的,虽然不规范)
super_tiger 2009-10-02
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wanghb121 的回复:]
引用 13 楼 bigbro001 的回复:
从初学者的角度,可以理解为:this是指本对象,super是指父对象
但实际上,严格的说法是:super是父类类型引用,this是当前类类型的引用。而他们两个都是指向“当前对象”。
具体的证明可以通过反汇编字节码看出


super并不是指向父类型的引用,它只是一个指示编译器调用超类方法的特有关键字。比如你在狗仔一个对象的时候可以用this把自己传给这个对象,但是super不行
[/Quote]


super和this都只是关键字,他们各自调用超类和本类的方法。这些方法只限于构造函数吗??有参数/无参的构造函数。
ZangXT 2009-10-01
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wanghb121 的回复:]
引用 13 楼 bigbro001 的回复:
从初学者的角度,可以理解为:this是指本对象,super是指父对象
但实际上,严格的说法是:super是父类类型引用,this是当前类类型的引用。而他们两个都是指向“当前对象”。
具体的证明可以通过反汇编字节码看出


super并不是指向父类型的引用,它只是一个指示编译器调用超类方法的特有关键字。比如你在狗仔一个对象的时候可以用this把自己传给这个对象,但是super不行
[/Quote]
跟我的理解比较像,呵呵。
wanghb121 2009-10-01
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 bigbro001 的回复:]
从初学者的角度,可以理解为:this是指本对象,super是指父对象
但实际上,严格的说法是:super是父类类型引用,this是当前类类型的引用。而他们两个都是指向“当前对象”。
具体的证明可以通过反汇编字节码看出

[/Quote]
super并不是指向父类型的引用,它只是一个指示编译器调用超类方法的特有关键字。比如你在狗仔一个对象的时候可以用this把自己传给这个对象,但是super不行
zhuhichn 2009-10-01
  • 打赏
  • 举报
回复
这个方法没有在具体类中定义,就像前面说的是设计语言是就具有的,是java语言的机制
bigbro001 2009-10-01
  • 打赏
  • 举报
回复
从初学者的角度,可以理解为:this是指本对象,super是指父对象
但实际上,严格的说法是:super是父类类型引用,this是当前类类型的引用。而他们两个都是指向“当前对象”。
具体的证明可以通过反汇编字节码看出
L502650 2009-10-01
  • 打赏
  • 举报
回复
学习.
ZangXT 2009-10-01
  • 打赏
  • 举报
回复
http://blog.csdn.net/ZangXT/archive/2009/09/24/4587985.aspx
无聊时可以看看,我写的点东西。

this是jvm传给非static方法的第一个参数
huangqibing0626 2009-10-01
  • 打赏
  • 举报
回复
this是指本对象,super是指父对象
HelloAldis 2009-10-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 chenchengamao 的回复:]
这是JVM给每个类的对象分发的“豪华超级大礼包”。
[/Quote]
的确超级豪华
chenchengamao 2009-10-01
  • 打赏
  • 举报
回复
这是JVM给每个类的对象分发的“豪华超级大礼包”。
tylovexuejian 2009-10-01
  • 打赏
  • 举报
回复
关注中。
zhuyouyong 2009-10-01
  • 打赏
  • 举报
回复

super_tiger 2009-10-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 super_tiger 的回复:]
如题,大虾指教~
[/Quote]
那是在那里定义的方法呢??我只是想看看怎么实现的~~
lz12366 2009-10-01
  • 打赏
  • 举报
回复
这时java编写者 之前已经设好的机制!!

this通常指当前对象,super则指父类的。当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造函数,这些马上就要讨论。如果你想引用父类的某种东西,则用super。

super是调用父类的构造函数!!如调用 super()是调用父类无参数的构造函数!!this()是调用自身无参数的构造函数!!

希望能对lz有点帮助
loveofmylife 2009-10-01
  • 打赏
  • 举报
回复
java关键字,你能说class,while,if这些关键字是那些类定义的吗
this是指本对象,super是指父对象
dajiadebeibei9 2009-10-01
  • 打赏
  • 举报
回复
1楼说的好 this super这些关键字 都是每个对象所带有的默认属性
rookie001 2009-10-01
  • 打赏
  • 举报
回复
不是具体某个类,是每个对象都默认有的,由java的机制决定

62,621

社区成员

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

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