码迷,mamicode.com
首页 > 其他好文 > 详细

this和super

时间:2019-12-06 09:22:19      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:不同   其他   类构造   类继承   父类   出现   成员变量   调用   子类   

this

1、this表示当前对象

2、它可以出现在:

(1)非静态代码块和构造器:this表示正在new的那个对象

(2)非静态方法:this表示调用这个方法的对象

3、用法:

(1)this.成员变量

  • 当成员变量与局部变量同名时,在成员变量的前面加“this.”
  • 这个成员变量可以是本类声明的,也可以从父类继承的,但是要求是在子类中可见的成员变量并且是不和子类的成员变量同名

(2)this.成员方法

  • 这个成员方法可以是本类声明的,也可以从父类继承的,但是要求是在子类中可见的成员方法,并且是没有重写

(3)this()和this(实参列表)

  • 只能访问本类的其他构造器
  • 而且必须在构造器首行

super

1、super:表示当前对象中从父类继承的

2、通过super访问的成员变量、成员方法、构造器等,都必须在子类中可见

3、用法

(1)super.成员变量

  • 当子类的成员变量与从父类继承的在子类中依然可见的成员变量同名时,可以使用“super.成员变量”来区别
  • 当然,就算不同名,通过“super.成员变量”也可访问到从父类继承的在子类中依然可见的成员变量

(2)super.成员方法

  • 当子类重写了父类的成员方法,又想要调用父类被重写的成员方法时,可以使用“super.成员方法”
  • 当然,不重写的话,也可以通过“super.成员方法”来访问从父类中继承的在子类中依然可以见的成员方法

(3)super()或super(实参列表)

  • 表示访问父类的实例初始化方法
  • 而且必须在子类构造器的首行
  • this()和this(实参列表)与super()或super(实参列表)不能同时出现

就近原则

  • super一定是从当前对象类型的直接父类开始找
  • this一定是从当前对象类型的本类的成员开始找
  • 即没有this又没有super,如果是变量一定是从局部变量开始找,如果是方法就从当前对象类型的本类的方法开始找

this和super

标签:不同   其他   类构造   类继承   父类   出现   成员变量   调用   子类   

原文地址:https://www.cnblogs.com/daidai66/p/11992955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!