JavaSE基础知识—面向对象(5.5 this和super关键字)

Posted truthseeking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE基础知识—面向对象(5.5 this和super关键字)相关的知识,希望对你有一定的参考价值。

一、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(参数列表);

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













以上是关于JavaSE基础知识—面向对象(5.5 this和super关键字)的主要内容,如果未能解决你的问题,请参考以下文章

Java面试题JavaSE基础之Java面向对象

JavaSE:类和对象

JavaSE基础之面向对象(上)

JavaSE基础知识—面向对象(5.4面向对象三大特征:封装继承多态)

javase基础9

Javase系列之面向对象