父類物件變成子類物件
阿新 • • 發佈:2018-11-07
父類物件變成子類物件
在父類物件與子類物件轉換在工廠模式中常用。
先看看子類父類互轉的例子。
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父類物件,在轉換成子類物件。系統會報錯。