14 public static void main(String[] args) { 15 Kettle k = new Kettle(); //父类的引用对象指向自身:把2升水倒入到水壶中,不会溢出 16 Cup c = new Cup();//子类的引用对象指向自身:把0.5升的水倒入到水杯中,不会溢出 17 Kettle k1 = new Cup(); //父类的引用对象指向子类:把0.5升的水倒入...
当我们执行步骤2时,如果父类对象并不是子类对象的实例,就会抛出"java.lang.ClassCastException"异常。这是因为父类对象的类型和子类对象的类型不兼容,无法进行强制转换。 为了避免这个问题,我们在进行类型转换之前应该先判断父类对象是否是子类对象的实例。我们可以使用instanceof关键字来进行判断。 if(parentinstanceofCh...
例一Father f = new Father(); Son s = (Son)f;//ClassCastException此时父类转子类会报类型转换失败的错。 因为对象f不具备Son对象的特有属性和方法,所以转换失败。 例二Father f = new Son(); Son s = (Son)f;…
在Java中,父类转子类的情况有以下几种: 向下转型(Downcasting):将父类对象强制转换为子类对象。这种转型需要注意的是,只有在确保父类对象实际上是子类对象的情况下才能进行,否则会抛出ClassCastException异常。 向上转型(Upcasting):将子类对象隐式地转换为父类对象。这种转型是安全的,因为子类对象在转换后仍然保留了其...
将对象从父类类型转换为子类 社区维基1 发布于 2022-11-25 新手上路,请多包涵 我对Java 语言中的类型转换有一个误解。问题是 ClassCastException 。例如,在这段代码中,假设 Animal 是 Dog 类的父类, 动物动物=新动物(); Dog dog =(狗)动物; 执行后抛出 ClassCastException 。然而,在研究 android 包时,...
Cat cat2 = (Cat)cat1;//将子类实现的父类声明转为子类声明 因为原先的子类cat,所以只能转为子类Cat的声明,不能是Dog或其他子类的,否则会导致运行时异常:ClassCastException。为避免可先通过instanceof判断类型是否相同,再进行转换,且进行向下转型的前提的是事先进行了向上转型。
//测试二:父类转子类 //第1种情况 会抛出 java.lang.ClassCastException: ParentClass pc2 = new ParentClass(); ChildClass cc2 = (ChildClass) pc2; //这里必须强制类型转换 //下溯造型 System.out.println(cc2.publicStr); System.out.println(cc2.outStr); ...
一般子类可以转父类,但父类转子类就会报cast error。 使用jsonObject,先把父类转jsonString,再把jsonString转子类,剩余的子类的值可以set进去。 3. 代码示范 import com.alibaba.fastjson.JSONObject; public class test { public static void main(String[] args) { B b = new B(); b.setB("1"); Strin...
请注意,如果子类不是父类的子类,或者如果子类扩展了父类并添加了新的方法或属性,那么这样的转换将会失败,并抛出ClassCastException异常。因此,在进行向下转型时,你需要确保你了解对象的实际类型,并确保转换是安全的。结论向上转型和向下转型是Java中的两种强制类型转换方式。向上转型是自动的,不需显式编写代码;而向下...