java中super与this关键字

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


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/

和一些相关帖子。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,740评论 18 399
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,136评论 0 62
  • 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位 代码如下: class Base {...
    木有鱼丸啦阅读 627评论 0 0
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,686评论 0 11
  • 闲 难眠 意阑珊 信步游园 桃柳竞相妍 翩跹蜂蝶逐撵 疲思倦意皆消散 湖光远山雾气虚掩 蓬莱仙岛难遂玉环愿 十里春...
    代香阅读 282评论 0 0