Java基础6-this和super的区别

时间:2023-02-15 18:37:45

this和super的区别:

this代表本类对类的应用;

super代表父类存储空间的标识(可以理解为父类引用,可以操作父类成员)

class Father{

public int num=10;
}


class Son extends Father{
public int num=20;

public void show(){
int num=30;
System.out.println(num);
System.out.println(this.num);  //20
System.out.println(super.num);  //10
}

}

public class Demo1 {
public static void main(String[] args) {
Son son=new Son();
son.show();
}
}

打印内容:

Java基础6-this和super的区别


使用:

1、调用成员变量

this.成员变量      调用本类的成员变量 

super.成员变量    调用父类的成员变量 


2、调用构造方法

this(...)       调用本类的构造方法

super(...)    调用父类的构造方法


3、调用成员方法

this.成员方法      调用本类的成员方法

super.成员方法   调用父类的成员方法


继承中构造方法的关系:

A、子类中所有的构造方法默认都会访问父类中空参数的构造方法

因为子类会继承父类中的数据,一定要完成父类数据的初始化

B、子类每一个构造方法的第一条语句默认都是super();


package com.windy.java;


class Father{
public Father(){
System.out.println("Father的无参构造方法");
}

public Father(String name){
System.out.println("Father的带参构造方法");
}
}


class Son extends Father{

public Son(){
//super();//默认就有
System.out.println("son的无参构造方法");
}

public Son(String name){
//super();//默认就有
System.out.println("son的带参构造方法");
}


}


public class Demo1 {
public static void main(String[] args) {
Son son=new Son();
System.out.println("--------------");
Son son2=new Son("Clare");
}
}


打印:

Java基础6-this和super的区别