Java 面向对象 之 super 关键字
http://www.verejava.com/?id=17159596599630
/**
*
this: 代表当前类的引用
1. 当局部变量和成员变量同名时, 成员变量要加 this 限定
2. 实例化时 可以用 this 调用当前类的构造方法, 必须写在第一行
3. 可以用 this 调用当前类的 普通方法
super : 代表当前父类的引用
1. 实例化子类时, 可以用 super 调用父类的 非私有方法
2. 实例化子类时. 可以用 super 调用父类的 构造方法 , 必须写在第一行
3. 在子类的方法中 , 可以用 supe 调用父类的 非私有方法.
*/
//父类
public class Father {
private String name;
private int age;
private String wealth;
public Father(){
wealth="100两黄金";
}
public Father(String name,int age){
this();
this.name=name;
//this.age=age;
this.setAge(90);
}
public void work(){
System.out.println("耕地");
}
public String getWealth(){
return wealth;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
//子类
public class Son extends Father{
public Son(String name,int age){
super(name, age);
//super.setName(name);
//super.setAge(age);
}
public void work(){
super.work();
System.out.println("儿子 寻找黄金宝藏");
System.out.println("只有通过自己的勤奋劳动, 才能得到果实 是最大的宝藏");
}
}
//测试
public class Test1 {
public static void main(String[] args) {
// 实例化 农夫
Father father=new Father();
father.setName("农夫");
father.setAge(90);
System.out.println(father.getAge()+" 岁 "+father.getName()+" 有 "+father.getWealth());
Father father= new Father("农夫", 90);
System.out.println(father.getAge()+" 岁 "+father.getName()+" 有 "+father.getWealth());
Son son=new Son("农夫", 90);
System.out.println("儿子知道父亲的 : "+son.getAge()+" 岁 "+son.getName()+" 有 "+son.getWealth());
son.work();
}
}