/**
* @(#)FatherSon.java
*
*
* @author CplusHUa
* @version 1.00 2013/5/8
*/
public class FatherSon {
public String v="Father";
public String x="輸出了Father類的public成員變量x!!!";
public FatherSon() {
System.out.println ("Father構造方法被調用!");
}
public FatherSon(String v){
this.v="Father類的帶參數構造方法,運行了!";
}
public void outinfo(){
System.out.println ("Father的outinfo方法被調用");
}
public static void main(String[] args){
}
}
/**
* @(#)Son.java
*
*
* @author CplusHua
* @version 1.00 2013/5/8
*/
public class Son extends FatherSon {
public String v="Son";
public Son() {
super();
System.out.println ("Son無參數構造方法被調用!");
}
public Son(String str){
super(str);//父類構造方法
System.out.println ("Son 帶參數構造方法被調用");
}
public void outinfo(){
System.out.println ("Son的outinfo()方法被調用");
}
public void test(){
String v="我覆蓋了成員變量和父類變量v!";
System.out.println ("-----------------1---------------------");
System.out.println (v);//輸出局部變量v
System.out.println (this.v);//輸出子類成員變量v
System.out.println ((super.v));//輸出父類成員變量v
System.out.println ("-----------------2---------------------");
System.out.println (x);//輸出超類變量x,子類繼承而來
System.out.println (super.x);//輸出超類成員變量v
System.out.println ("-----------------3---------------------");
outinfo();//調用子類的outinfo()方法
this.outinfo();//調用子類的outinfo()方法
super.outinfo();//調用父類的outinfo()方法
}
public static void main (String[] args) {
new Son().test();
}
}
程序執行結果
Father構造方法被調用!
Son無參數構造方法被調用!
-----------------1---------------------
我覆蓋了成員變量和父類變量v!
Son
Father
-----------------2---------------------
輸出了Father類的public成員變量x!!!
輸出了Father類的public成員變量x!!!
-----------------3---------------------
Son的outinfo()方法被調用
Son的outinfo()方法被調用
Father的outinfo方法被調用