Java中this和super的使用
区别
区别点 | this | super |
访问属性 | 访问本类中的属性,如果本类没有,则从父类继续查找 | 访问父类中的属性 |
调用方法 | 访问本类中的方法,如果本类没有,则从父类继续查找 | 直接访问父类的方法 |
调用构造器 | 访问本类的构造器,如果本类没有,则从父类继续查找 | 调用父类构造器必须放在自类构造器的首行 |
特殊 | 表示当前对象 | 子类中访问父类对象 |
this
- this关键字可以用来访问本类的属性、方法、构造器
- this用来区分当前类的属性和局部变量
- 访问成员方法的语法:this.方法名()
- 访问构造器语法:this(参数列表) 说明:只能在构造器访问另外一个构造器,this()调用构造器是,必须放在构造器的第一句
- this不能在类定义的外部使用,只能在类定义的方法中使用
- 简单一句话总结:this是哪个对象调用的,this就代表哪个对象
super
- super代表父类的引用,用于访问父类的属性、方法、构造器
- 访问父类的属性:super.属性 ,但不能访问父类私有的属性
- 访问父类的方法:super.方法名() 不能访问父类的私有的方法
- 访问父类的构造器:super(参数列表) 只能放在构造器的第一句
- 当子类有父类中的成员指属性和方法重写了,为了访问父类的成员,必须通过super,如果没有重写,使用super、this访问效果一样