java学习日记——多态中的引用类型转换

来源:互联网 发布:网络兼职有哪些 编辑:程序博客网 时间:2024/05/22 01:29

引用类型转换:

       向上类型转换(隐式/自动类型转换),是小类型到大类型的转换,不存在风险

       向下类型转换,是大类型到肖类型的转换,存在风险

       instanceof来解决引用对象类型的问题,避免类型转换的安全问题


样例代码:父类Animal,子类Dog省略

       测试类:



从上面可以看出小类型是可以转化为大类型的,是安全的;

大类型转化为小类型则不安全。


使用instanceof来判断一个大类型对象强制转化为小类型是否会溢出,即不安全。


样例代码:

父类:

package com.imooc;public class Animal {public void bark(){System.out.println("I can bark!");}}

子类Dog类:

package com.imooc;public class Dog extends Animal {public void bark(){System.out.println("I can bark as a dog");}}

子类Cat类:

package com.imooc;public class Cat extends Animal{public void bark(){System.out.println("I can bark like as cat");}}

测试类:

package com.imooc;public class Initial {public static void main(String[] args){Dog obj1 = new Dog();Animal obj2 = obj1;//小类型到大类型的类型转换if(obj2 instanceof Dog){Dog obj3 = (Dog)obj2;obj3.bark();}else{System.out.println("无法转换成Dog类型");}if(obj2 instanceof Cat){Cat obj3 = (Cat)obj2;obj3.bark();}else {System.out.println("无法转换成Cat类型");}}}

运行结果:


有意思的类型转换,改日继续,哈哈!

0 0
原创粉丝点击