java中关键字super和this

1.super关键字:

(1)子类构造方法调用父类构造方法:super()

class B{
	public B() {
		System.out.println("1*****");
	}
}
public class A extends B {
	public A() {
		super();
        }
 }

输出结果:

1*****

(2)当子类继承父类时会覆写父类的方法,若想再访问父类方法使用super.方法()/super()属性

class B{
	public void fun()
	{
		System.out.println("1******");
	}
}
public class A extends B {
	public void fun()
	{
		super.fun();
		System.out.println("2#######");
	}
}

运行结果:

1******

2#######

(3)子类调用被覆写的属性

super.属性

2.this关键字:

(1)表示本类属性:

当参数与类中属性同名时,使用this表示类中属性。
以后在类中方法中访问本类属性,一定要加this关键字。
public class A  {
	public int a=2; 
	public void fun(int a)
	{
		this.a=a;   //当参数与类中属性同名时,使用this表示类中属性
		System.out.println(a);
	}
	public void play(int b)
	{
		b=this.a;
		System.out.println(b);//方法中访问本类属性
	}
}

(2)表示本类方法(普通方法和构造方法)

this调用普通方法:this.方法名称(参数)
this调用本类构造方法:this(参数)
this调用构造方法必须在构造方法首行
调用构造方法不能成环。
public class A  {
	public A() {
		System.out.println("我是人");
	}
	public A(int a) {
		this();     //调用本类构造方法
		System.out.println("我不是人");
	}
	public void fun()
	{
		System.out.println("我是猪");
	}
	public void play()
	{
		
		this.fun();    //调用普通方法
		System.out.println("你是猪");
	}
}

(3)表示当前对象

3.super和this的区别

(1)概念上:

this:访问本类中的属性和方法。
super:由子类访问父类中的属性,方法

(2)查找范围:

this:先查找本类,如果本类没有就调用父类
super:不查找本类,直接调用父类

(3)特殊:

this:表示当前对象
super:无




猜你喜欢

转载自blog.csdn.net/qq_41889292/article/details/80778659