向上转型:可以理解为将子类类型对象转换成父类类型的对象,也就是把子类类型的对象直接赋值给父类类型的对象,并且向上转型是安全的。通俗易懂的理解:平行四边形一定是四边形,但是保证四边形一定是平行四边形;
实例:
class Quadrangle{ //四边形
}
public class Parallelogram extends Quadrangle { //平行四边形继承了四边形
int edges = 8;
}
public static void main (String args[]){
Quadrangle p = new Parallelogram();
p.edges = 555; //通过四边形类类型的对象p调用变量edges,并将其edges的值修改成555
}
}
注意:向上转型是父类的对象无法调用子类独有的属性和方法
向下转型:可以理解为将父类类型的对象转换成子类类型的对象,but!!!向下转型如果把一个较抽象的类的对象转换成一个较具体的类的对象,这样通常会出错。例如:你可以说这个平行四边形是一个四边形,但不能说这个四边形是一个平行四边形,因为平行四边形是一个较具体的,而四边形是一个比较抽象的,除了平行四边形还有正方形,长方形,不规则四边形等等。如果要想向下转型是必须借助强制类型转换简称强转
实例:
class Quadrangle{
}
public class Parallelogram extends Quadrangle {
public static void main(String[] args) {
Parallelogram p = (Parallelogram) new Quadrangle();
}
}