抽象类Java学习笔记

java中super与this关键字

2016-06-29  本文已影响130人  还有236

胜利者往往是从坚持最后五分钟的时间中得来成功。——牛顿

1、super关键字表示父(超)类,this指代当前对象。

2、可以使用super来调用父类被子类隐藏的变量或覆盖的方法,当调用super.XX()就是调用父类的

XX()方法。

3、当类中有两个同名变量时,一个是类的成员变量,一个是方法的局部变量,this关键字可以区别这两个变量

4、this可以表示当前调用方法的对象引用。例:

People p1;

p1.addActionListener(this);

5、super调用构造方法,表示调用父类的某一个构造方法,应放在构造方法里第一句。

this调用构造方法,表示调用当前类的别的构造方法,应放在构造方法里第一句。


注意事项


1、其实每个子类的构造方法都隐式的调用了super(),若

当前父类没有相应的构造方法,编译器会报错。

2、super()从子类调用父类的构造方法,this()调用当前类的其他构造方法.

3、super()和this()必须放在构造方法里第一行

4、this()可以调用一个构造器,但不能调用两个

5、this()和super()不能同时出现在一个构造方法中,因为this()代表同类其他的构造方法,那其中也包含了super(),这样就出现了重复,失去意义,编译器会报错。

6、this()和super()都指代对象,所以不能出现在static环境(static方法、static块、static变量)中。

7、从本质上讲,super是一个Java关键字,this是指向当前对象的指针

8、在构造方法里的this,表示的是正在构造的对象。

public People() {

System.out.plintln(this.toString());

}

原因是java中调用构造方法之前,这个对象已经存在,所以构造方法中this调用的是当前被构造的对象。


本文主要参考自  http://zhangjunhd.blog.51cto.com/113473/20531/

和一些相关帖子。

上一篇下一篇

猜你喜欢

热点阅读