一、this关键字

1、说明

this关键字代表当前类的对象,可以访问本类的属性、方法、构造器
注意:谁调用该方法,则this就指谁

2、语法

访问属性:
  this.属性名 = 值;
  System.out.println(this.属性名);
访问方法:
  this.方法名();
访问构造器:
  this([参数列表]);

3、注意事项

一般来讲如果本类内部访问当前类的成员,则直接访问即可,默认也是通过this调用的。
当局部变量和成员变量重名时,则必须通过this才能调用到成员变量!

二、super关键字 

1、说明

super代表了在子类中获取到的父类的引用,可以访问父类的属性、方法、构造器

2、语法

super.属性名 = 值;
super.方法名(参数列表);
super(参数列表);只能放在构造器的第一句

3、注意事项

①当子类成员和父类成员重名时,在子类中,默认访问的是本类的成员,如果需要访问父类的成员,则需要通过super访问
②当父类没有无参构造器时,子类必须通过super显式调用父类的有参构造器

4、特点

①super先去访问直接父类的成员,如果没有将一直往上追溯,直到Object类
②如果父类和上层的间接父类都有某同名成员,访问时遵循就近原则

三、this和super对比

  说明 访问属性或方法 访问构造器
this 当前类的对象

先去找本类中是否有该成员,如果有,直接访问,

如果没有继续向找父类,直到找到

this(参数列表);

只能放在构造器的第一句,用于访问本类的构造器

super 父类的引用

先去找直接父类是否有该成员,如果有,直接访问,

如果没有继续向上找其他父类,直到找到

super(参数列表);

只能放在构造器的第一句,用于访问父类的构造器

posted on 2018-08-23 13:26  明德博学勤奋求实  阅读(179)  评论(0编辑  收藏  举报