java面向对象-this和super关键字的四种用法

  • Post author:
  • Post category:java




this关键字的四种用法



this关键字的第一种用法:

代表对象,根据四种不同的使用方式代表不同的对象


场景

:(子)类的实例方法或子类的构造器中


格式

:this.实例变量名。

this.实例方法名(实参)


作用



用来调用该对象的实例变量或实例方法



注意

: 当实例方法中如果没有同名的局部变量,调用的实例变量或实例方法如果没有去写this关键字,由JVM的编译器隐式进行补全


含义

: 哪个对象调用了this关键字所在(子)类的构造器或(子) 类的实例方法,this关键字就代表那个对象。



this关键字的第二种用法:


场景

:(子)类的构造器中


格式

:this(实参)


作用



调用本类中其他的构造器



含义

:当构造器本身无法进行初始化工作时,需要使用this(实参)访问本类中去其他的构造器完成对象成员的初始化工作。


注意



1.this(实参)必须写在构造器中的第一行

2.如果在构造器中出现了this(实参),构造器中的第二个执行顺序内容不会被隐式加载(实例成员和构造器代码块)



this关键字的第三种用法


场景


父类中

(父类中的this就代表多态名的调用)



格式


this.实例变量名;

this.实例方法名(实参);


作用

:


使用多态形式的对象调用实例变量或实例方法



含义

:

哪个对象调用了父类中的this,this关键字就代表该对象的多态形式



this关键字的第四种用法


场景

:

实例内部类的构造器中或实例方法中


格式

:

外部类类名.this.实例变量名;

外部类类名.this.实例方法名(实参);


作用

:


在内部类中调用外部类同名的实例变量或实例方法



含义

:

哪个对象调用”外部类类名.this”所在的实例方法或构造器,“外部类类名.this” 就代表哪个对象的外部类对象



super关键字的四种用法



super关键字的第一种用法


场景

:

子类的构造器中或子类的实例方法


格式

:

super.实例变量名;

super.实例方法名(实参);


作用

:


用来区分子父类继承关系中同名的实例变量或实例方法



含义

:


哪个对象调用了super关键字所在的构造器或实例方法,super关键字就代表哪个对象的父类引用



super关键字的第二种用法


场景

:

子类的构造器中


格式

:

super(实参);


作用

:


调用本类的父类对应参数的构造器



含义

:

在初始化子类对象之前,通过super(实参)调用父类的构造器完成父类成员的初始化工作



super关键字的第三种用法:


场景

:

实现类重写接口中默认方法后的方法中


格式

:

接口名.super.默认方法名(实参);


作用

:


调用指定父接口中的默认方法



含义

:

哪个对象调用了”接口名.super.默认方法名(实参)”所在的实例方法,”接口名.super”就代表哪个对象的父接口引用



super关键字的第四种用法


场景

:

实例内部类的构造器中或实例方法中


格式

:

外部类类名.super.实例变量名;

外部类类名.super.实例方法名(实参);


作用

:


在内部类中调用外部类父类的实例变量或实例方法



含义

:

哪个对象调用”外部类类名.super”所在的实例方法或构造器,”外部类类名.super”就代表哪个对象的外部类对象的父类引用



版权声明:本文为m0_47671062原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。