盐城企业网站制作,做网站加盟,wordpress调用页面名称,西安专业承接网站搭建模板一、向上转型。 通俗地讲即是将子类对象转为父类对象。此处父类对象可以是接口。 1#xff0c;向上转型中的方法调用。 看下面代码#xff1a; 注意这里的向上转型#xff1a;Animal bnew Bird(); //向上转型b.eat(); 此处将调用子类的eat()方法。原因#xff1a;b实际指向…一、向上转型。 通俗地讲即是将子类对象转为父类对象。此处父类对象可以是接口。 1向上转型中的方法调用。 看下面代码 注意这里的向上转型Animal bnew Bird(); //向上转型b.eat(); 此处将调用子类的eat()方法。原因b实际指向的是Bird子类故调用时会调用子类本身的方法。 需要注意的是向上转型时b会遗失除与父类对象共有的其他方法。如本例中的fly方法不再为b所有。 2向上转型的好处。 看上面的代码 public static void dosleep(Human h) {h.sleep();} 这里以父类为参数调有时用子类作为参数就是利用了向上转型。这样使代码变得简洁。不然的话如果dosleep以子类对象为参数则有多少个子类就需要写多少个函数。这也体现了JAVA的抽象编程思想。 二、向下转型。 与向上转型相反即是把父类对象转为子类对象。 看下面代码 Girl g1new MMGirl(); //向上转型g1.smile();MMGirl mmg(MMGirl)g1; //向下转型,编译和运行皆不会出错 这里的向下转型是安全的。因为g1指向的是子类对象。 而Girl g2new Girl();MMGirl mmg1(MMGirl)g2; //不安全的向下转型,编译无错但会运行会出错 运行出错 Exception in thread main java.lang.ClassCastException: com.wensefu.other1.Girlat com.wensefu.other1.Main.main(Girl.java:36)如代码所示可以通过instanceof来防止出现异常。转载于:https://www.cnblogs.com/webapplee/p/3771707.html