DESKTOP-1K7LKMB_20200829马思宇
this和super区别
相同
- this 和 super 都是与实例有关的
- 使用 this 和 super 可以访问 实例成员 和 类成员
- 虽然通过 this 和 super 有方位 类成员 ,但不建议使用
- 因此 this 和 super 都不能出现在 static 方法中 和 static 代码块中 ( 类初始化器 )
- this 和 super 都可以用于调用构造方法
- 当通过 this( [arguments] ) 或 super( [arguments] ) 调用构造方法时,它们必须位于构造方法的第一行
- 同一个构造方法内部 this( [arguments] ) 或 super( [arguments] ) 不能同时出现
区别
-
所表示实例不同
- this 代表本类的当前实例,即可以通过this访问本类中的成员 ( this 可以单独使用 )
- super 用于访问从父类中继承的、可见的成员 (super不能表示父类实例,不能单独使用)
-
调用的构造方法不同
- this 用于调用本类内部的其它重载的构造方法
- super 用于调用父类中的构造方法
-
访问的成员不同
- 通过
this.
可以访问本类中以及从父类中继承的、可见的 成员 ( 方法 和 属性(字段) ) - 通过
super.
可以访问从父类中继承的、可见的成员 ( 方法、字段(属性) )
- 通过
-
使用方式不同
this
关键字可以单独使用,比如 直接输出 this 或当作返回值this
关键字在本类中可以省略 ( 比如 getName 方法 中,return this.name;
可以写作return name ;
)super
关键字不可以单独使用,必须通过super( [arguments] )
或super.
形式来使用
吐槽
天气冷了,感冒的多起来了。。。
点赞