1. 程式人生 > >父類物件變成子類物件

父類物件變成子類物件

                                            父類物件變成子類物件

在父類物件與子類物件轉換在工廠模式中常用。

先看看子類父類互轉的例子。


public class employee {
	private String name;
	private double salery;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getSalery() {
		return salery;
	}
	public void setSalery(double salery) {
		this.salery = salery;
	}
	public employee( String name,double salery) {
		this.name=name;
		this.salery=salery;
		
	}
	public double raisesalery(double raise) {
		 salery+=raise; 
		 return salery;
	}
}

 

package MM;

public class manager extends employee{

	private double bones;

	public double getBones() {
		return bones;
	}

	public void setBones(double bones) {
		this.bones = bones;
	}
	public manager(String name,double d,double bones) {
		super(name,d);
		this.bones=bones;
	}
}

 

package MM;

public class test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		manager boss=new manager("lyc", 29, 10);		//定義子類物件
		employee staff[]=new employee[3];					
		staff[0]=boss;									//子類物件變成父類物件
		manager m =(manager)staff[0];					//父類物件變成子類物件
		System.out.println(m.getBones());				//訪問成功
		employee ss=new employee("dsad", 12289);		//定義父類物件
		manager ll=(manager)ss;							//父類物件變成子類物件
		System.out.println(ll.getName());				//訪問失敗
	}

}

執行結果:

注意:

先new子類物件,在轉換成父類物件可以通過父類物件訪問對應的方法。轉換回來之後也能訪問子類特有的方法。

但是如果先new父類物件,在轉換成子類物件。系統會報錯。