美文网首页抽象类Java学习笔记
java中super与this关键字

java中super与this关键字

作者: 还有236 | 来源:发表于2016-06-29 15:16 被阅读130次

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

    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/

    和一些相关帖子。

    相关文章

      网友评论

        本文标题:java中super与this关键字

        本文链接:https://www.haomeiwen.com/subject/bjxxjttx.html