java 向上转型 向下转型

//父类 四边形

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)
}
}
//子类
public class Parallelogram1 extends Quadrangle{
public static void main(String args[]){
Quadrangle q =new Quadrangle();
//向下转型需要判断类型
if(q instanceof Parallelogram1){
//向下转型
Parallelogram1 p =(Parallelogram1) q;
}
}
}
1.所谓的向上转型就是创建一个子类对象  然后用父类接受,转化为父类的类型。如平行四边形向上转为四边形。在java中可以将一个类向上转型为父类对象,也可以向上转型为抽象类对象,或者向上转型为该类实现接口。
2.向下转型,就是将父类类型强制转换为子类类型对象,如四边形向下转为平行四边型,并不是所有的四边型都是平行四边形的,所以向下转型时需要进行对象类型判断 然后再向下转型。
原文地址:https://www.cnblogs.com/cyz110/p/6226576.html