this:代表本类对象的引用。
super:代表父类的存储空间。
http://bbs.itheima.com/forum.php ... ;pre_pos=7&ext=
super和this关键字都可以用来覆盖java语言的默认作用域,使被屏蔽的方法或变量变为可见。
在以下场合会出现方法或变量被屏蔽的现象
(1) 场合一:在一个方法内,当局部变量和类成员变量同名,或者局部变量和父类的成员变量同名时,按照变量的作用域规则,只有局部变量在方法内可见。
(2)场合二:当子类的某个方法覆盖了父类的一个方法,在子类的范围内,父类的方法不可见。
(3)场合三:当子类中定义了和父类同名的成员变量时,在子类的范围内,父类的成员变量不可见。
this 和super是常用来指代子类对象和父类对象的关键字。JAVA系统默认,每个类都缺省地具有null,this和super三个域,所以在任意类中都可以不加说明而直接使用他们。其中null代表“空”,代表一个什么也没有的空值。
this表示的是当前对象本身,更准确地说,this代表了当前对象的一个引用。对象引用可以理解为对象的另一个名字,通过引用可以顺利地访问到对象,包括访问、修改对象的域、调用对象的方法。
super表示的是当前对象的直接父类对象,是对象的直接父类对象的引用。所谓直接父类是对象是相对于当前对象的其他“祖先”类而言的。 |