父类对象变成子类对象

                                            父类对象变成子类对象

在父类对象与子类对象转换在工厂模式中常用。

先看看子类父类互转的例子。


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父类对象,在转换成子类对象。系统会报错。

猜你喜欢

转载自blog.csdn.net/qq_43279637/article/details/83383605
今日推荐