super的用法:
public class TestSuper01 {
public static void main(String[] args) {
new ChildClass().f();
}
}
class FatherClass {
public int value;
public void f(){
value = 100;
System.out.println ("FatherClass.value="+value);
}
}
class ChildClass extends FatherClass {
public int value;
public void f() {
super.f(); //调用父类对象的普通方法
value = 200;
System.out.println("ChildClass.value="+value);
System.out.println(value);
System.out.println(super.value); //调用父类对象的成员变量
}
}
使用super关键字,可以调用父类的方法和变量。
public class TestSuper02 {
public static void main(String[] args) {
System.out.println("开始创建一个ChildClass对象......");
new ChildClass();
}
}
class FatherClass {
public FatherClass() {
super();
System.out.println("创建FatherClass");
}
}
class ChildClass extends FatherClass {
public ChildClass() {
System.out.println("创建ChildClass");
}
}
super还可以调用父类的构造方法,并且所有构造方法的第一句都是super(),如果不写出来,编译器会自动生成。
this的用法:
class NetUser{
int id;
int pwd;
String emailAdd;
public NetUser(int id, int pwd) {
this.id = id;
this.pwd = pwd;
emailAdd = this.id+"@gameschool.com";
}
public NetUser(int id,int pwd,String emailAdd) {
this(id,pwd);//调用了上面定义的构造器
this.emailAdd = emailAdd;
}
public void Test() {
System.out.println(id+"\t"+pwd+"\t"+emailAdd);
}
}
this可用于同一个类的构造方法的调用。