向上转型和向下转型是什么

本文解释了Java中的向上转型(将子类对象赋值给父类对象)和向下转型(从父类到子类的转换)概念,强调了两者之间的区别,以及在实例中如何操作和可能遇到的问题,包括父类对象无法访问子类属性和强制类型转换的使用限制。
摘要由CSDN通过智能技术生成

向上转型:可以理解为将子类类型对象转换成父类类型的对象,也就是把子类类型的对象直接赋值给父类类型的对象,并且向上转型是安全的。通俗易懂的理解:平行四边形一定是四边形,但是保证四边形一定是平行四边形;

实例:

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();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值