this 和 super关键字

this和super关键字,其用法非常的相似。super用来代表父类,而this用来代表本类。

this()用于调用本类的构造。

super()用来调用父类的构造,必须出现在构造当中的第一行。

this. 用来调用本类的属性和方法,可以出现在在非static的部分。super.用来调用父类已经父类继承而来的的属性和方法,出现在非static部分。

如果this.出现在构造当中,代表正在构造或者即将构造成功的对象;如果出现在方法当中,代表该方法的调用对象,在不重名的情况下,this可以省略。this()不能用来自己调用自己。

public class Sub extends Super{
	public Sub(){                          //3
		super(3);                            //4
		System.out.println("sub1");          //7
	}
	public Sub(int a){                     //2
		this();                              //3
		System.out.println("sub2");          //8
	}
	public Sub(int a, String b){           //1
		this(a);                             //2
		System.out.println("sub3");          //9
	}
	public static void main(String[] args){
		new Sub(5,"aa");                   //1
	}
}
public class Super {
	private String b;
	private int a;
	public Super(){
		this(10, "superman");
		System.out.println("super1");
	}
	public Super(int a){                 //4
		this(a,"");                        //5
		System.out.println("super2");      //6
	}                                    //6
	public Super(int a, String b){       //5
		//等同于写了super();由于其父类已经是object,所以没有执行什么动作
		System.out.println("super3");//5
		this.a = a;                 //5
		this.b = b;                 //5
	}
}


 

发布了76 篇原创文章 · 获赞 4 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章