您的位置:首页 > 其它

this 和 super关键字

2011-12-29 13:54 267 查看
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
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: