您的位置:首页 > 编程语言 > Java开发

Java基础系列--this、super关键字

2018-02-28 14:53 399 查看
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8483623.html

一、概述

  Java中this有两种用途,一种是用于指代当前对象,一种适用于指代构造器,当前类的构造器。

  super就专用于指代构造器,而且是超类的构造器。

  this关键字和super关键字关联之处来与二者皆可用于构造器中来调用其他构造器。

二、this作用

2.1 指代当前对象

  this指代当前对象时,是属于对象级别的存在,不可用于类级别的内容(静态内容)中。

  this多用于变量名与参数名称存在冲突时,用于区分对象的变量与参数。下面代码第9行的this就是这个用途。

1 public class ThisTest {
2     private String name;
3
4     public String getName() {
5         return name;
6     }
7
8     public void setName(String name) {
9         this.name = name;
10     }
11 }


2.2 指代构造器

  this指代构造器的时候,只能指代当前类的中的构造器,而且只能写在构造器中,且位于第一行,不能与super同时出现。

1 public class ThisTest {
2     public ThisTest(){}
3     public ThisTest(int i){
4         this();
5     }
6     public ThisTest(int i,int j){
7         this(i);
8     }
9 }


  无参表示调用无参构造器,带参数表示调用指定参数构造器。

三、super作用

  super类似于this第二个作用,不过它由于指代父类的构造器。

1 class Father{
2     Father(){}
3     Father(String name){
4         this();
5     }
6 }
7 class Son extends Father{
8     Son(){
9         super();
10     }
11     Son(String name){
12         super(name);
13     }
14 }


  注意,如果父类中无无参构造器,那么子类中也不应该存在无参构造器。

  super的用法和this类似。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: