zoukankan      html  css  js  c++  java
  • This关键字和Super关键字

    This关键字

    Java提供了一个this关键字,this关键字总是指向调用该方法的对象。根据this出现位置的不同,

    this作为对象的默认引用有两种情形:

    1.构造器中引用该构造器正在初始化的对象;
    2.在方法中引用调用该方法的对象。

    this关键字最大的作用就是让类中一个方法,访问该类里的另一个方法或Field。

    this可以代表任何对象,当this出现在某个方法体中,它所代表的对象是不确定的,但它的类型是确定的,

    它所代表的对象只能是当前类;只有当这个方法被调用时,它所代表的对象才被确定下来:

    谁在调用这个方法,this就代表谁。

     

    注意是:对于static修饰的的方法而言,则可以使用类来直接调用该方法,如果在static修饰的方法中使用this关 键字,则这个关键字就无法至向合适的对象。所以,static修饰的方法中不能使用this引用由于static修饰的方法 不能使用this引用,使用static修饰的方法不能访问不使用static修饰的普通成员,因此,java语法规定:静态成员 不能直接访问非静态成员。


    Super关键字

    super是java提供的一个关键字,super用于限定该对象调用它父类继承得到的Field或方法。
    如果在构造器中使用super,则super用于限定该构造器初始化的是对象从父类继承得到的Field,

    而不是该类自己定义的Field

    super调用父类被覆盖的实例方法

    如果需要在子类中调用父类被覆盖的实例方法,则可以使用super限定来调用父类被覆盖的实例方法。
    静态方法中不能使用super关键字。【static】

    super调用父类与子类重名的Field 
    如果子类定义了与父类同名的Field,则会发生子类Field隐藏父类Field的情形。正常情况下,子类里定义的 方法 直接访问该Field默认会访问到子类中定义的Field,无法访问到父类中被隐藏的Field。在子类定义的实例方 法可 以通过super来访问父类中被隐藏的Field。

    调用父类构造器

    使用super关键字调用父类的构造器
    子类继承父类不会获得父类的构造器,但子类构造器里可以通过super关键字访问到父类的构造器。


    this关键字和super关键字的区别

    super关键字调用的是其父类的构造器,而this调用的是同一个类中重载的构造器。因此:使用super定义父类构造器也必须出现在子类构造器执行的第一行,所以this调用和super调用不会同时出现

  • 相关阅读:
    一、 IO 五种模型
    Spring核心IoC和AOP的理解
    spring读取properties文件配置使用
    Linux下的SVN服务器搭建
    Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
    时间戳函数
    用户,角色,权限对象
    程序翻译文本传输请求创建
    ALV值存放图标
    函数的异步、延迟调用
  • 原文地址:https://www.cnblogs.com/t0404/p/10291108.html
Copyright © 2011-2022 走看看