Java中的this和super关键字
来自CloudWiki
this关键字
this关键字有两种用法:第一种用法中,this代表它所在类的实例化对象。可以理解为是类对象的一个简单引用,利用this可以连用当前对象的方法和变量,特别是当方法名和变量名很长时,这种调用更加有意义。第二种用法,解决成员变量和局部变量重名的问题。第三种用法,在同一个类中不同构造方法之间的调用需要使用this。
【实例5-4】this关键字的三种用法举例。
public class ThisEx { public String name; public int age; public ThisEx(String name) { this.name=name;//参数中的变量名name和属性中的名字name重名 } public ThisEx(String name,int age ) { this(name);//调用上面的public ThisEx(String name)构造方法 this.age=age; //参数中的变量名age和属性中的名字age重名 } public void setAge(int age){ this.age=age; this.aComplexMethodPresentations();//调用名字复杂的方法 } public void aComplexMethodPresentations(){ int age; age=this.age; } }
【注 意】
- 如果在构造方法中调用另一构造方法,则这条调用语句必须放在第一句。
super关键字
super关键字主要的功能是完成子类调用父类中的内容。super有两种用法:第一种用法中,super表示的是所在类的直接父类对象,使用super可以调用父类的属性和方法。第二种用法,子类的构造方法中可以调用父类的构造方法。
【实例5-5】super关键字的两种用法举例。
public class Father { String name; public Father(){ System.out.println("调用父类构造方法"); } public void walk(){ System.out.println("调用父类walk方法"); } } public class Child extends Father{ public Child(){ super();//调用父类的构造方法 System.out.println("调用子类构造方法"); } public void walk(){ super.walk();//调用父类的方法 System.out.println("调用子类walk方法"); } }
【注 意】
- 子类中的无参构造方法默认第一句是调用父类的无参构造方法。使用super调用父类的方法实际上主要是调用被子类覆盖的方法。
返回 Java程序设计