//this用法演示
public class DemoThis{
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public void print(){
System.out.println("Name = "+name+" Age = "+age);
}
public static void main(String[] args){
DemoThis dt = new DemoThis();
dt.setName("Young");
dt.setAge(20);
dt.print();
}
}
//super用法演示
class Person { //定义Person类
private String name;
private int age;
protected void setName(String name){ //定义setName函数,并使用了this来区别成员函数与形参
this.name = name;
}
protected void setAge(int age){ //定义setAge函数,并使用了this来区别成员函数与形参
this.age = age;
}
protected void print(){ //定义print函数,并使用了this来区别成员函数与形参
System.out.println("Name = "+name+" Age = "+age);
}
}
public class DemoSuper extends Person{ //DemoSuper类继承Person类
public void print(){
System.out.println("DemoSuper:");
super.print(); //调用超类的成员函数
}
public static void main(String[] args){ //定义主函数
DemoSuper ds = new DemoSuper(); //定义对象ds
ds.setName("Young");
ds.setAge(20);
ds.print();
}
}
在DemoSuper中,重新定义的print方法覆写了父类的print方法,它首先做一些自己的事情,然后调用父类的那个被覆写了的方法。输出结果说明了这一点:
DemoSuper:
Name=kevin Age=22
在构造函数中,this和super也有上面说的种种使用方式,并且它还有特殊的地方,请看下面的例子:
package bb;
class Person{
public static void prt(String s){
System.out.println(s);
}
Person(){
prt("A person.");
}
Person(String name){
prt("A person name is "+name);
}
}
public class Chinese extends Person{
Chinese(){
super(); //调用父类具有相同形参的构造函数
prt("A chinese.");
}
Chinese(String name){
super(name); //调用父类具有相同形参的构造函数
prt("His name is "+name);
}
Chinese(String name,int age){
this(name); //调用当前具有相同形参的构造函数
prt("his age is:"+age);
}
public static void main(String[] args){
Chinese cn = new Chinese();
cn = new Chinese("kevin");
cn = new Chinese("kevin",22);
}
}
本文摘自CSDN博客,转载请标明出处:http://blog.csdn.net/yihuei123/archive/2007/06/04/1637893.aspx