对象类型转换有两种,向上转型和向下转型
向上转型类似于 :猪—>家禽—>动物
平行四边形—>四边形
平行四边形是四边形的一种,可以将平行四边形看作是一个四边形对象。猪看成是动物的对象。
class Quadrangle{//四边形类
public static void draw(Quadrangle q){//四边形方法
}
}
public class Parallelogram extends Quadrangle{//平行四边形类,继承四边形
public static void main(String args[]){
Parallelogram p=new Parallelogram();//实例化平行四边
draw(p);//调用父类方法
}
}
向下转型
理解为:子类是父类的一个实例,但父类不一定子类的实例。
所有的平行四边形都是四边形,但四边形不一定是平行四边形。
class Quadrangle{
public static void draw(Quadrangle q){
}
}
public class Parallelogram extends Quadrangle{
public static void main(String args[]){
draw(new Parallelogram());//将平行四边形类看作是四边形对象,称为向转型操作
Quadrangle q=new Parallelogram();
//将父类对象赋予子类对象,并强制转换类型为子类类型
Parallelogram p=(Parallelogram)q;
}
}