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. 形式来使用

吐槽

天气冷了,感冒的多起来了。。。

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1