父类到子类的转换(向下转型)and instanceof 运算符

来源:互联网 发布:手机原创歌曲软件 编辑:程序博客网 时间:2024/06/03 21:11

1.将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型。此时必须进行强制类型转换。

2.对比:

基本数据类型之间进行强制类型转换是对被强制转换类型“做手术”。
如:double  d1=5;       //对5做手术,变成5.0
int  a=(int)3.14;    //对3.14做手术,变成3

引用数据类型之间强势转换时是还原子类的真实目的,而不是给子类“做手术”。

如: Pet  pet=new Dog("欧欧","雪纳瑞");
Dog dog=(Dog)pet;                   / /正确!还原子类的真实面目。
Penguin  pgn=(Penguin)pet;   / / 出现异常给子类做手术。

3. instanceof  运算符
语法:
对象 instanceof  类或接口

该运算符是用来判断一个对象是否属于一个类或者实现了一个接口,,结果为  true 或  false 。在强制类型转换之前通过  instaceof  运算符检查对象的真实类型,在进行相应的强制类型转换,这样就可以类型转换异常。


4. (1) 使用instanceof 运算符时, 对象的类型必须 instanceof  的第二个参数所指定的类或接口在继承树上有上下级的关系,否则会出现编译错误。列如:pet instanceof String 会出现编译错误。
    (2)instanceof 通常和强制类型转换结合使用。
0 0
原创粉丝点击