eclipse
向上造型 简单来说就是 使用 父类的引用指向子类的对象 动物 animal=new 狗(); 狗是动物 Animal a=new Dog(); Animal a=new Cat(); 猫是动物 在使用向上造型编程时需要注意 ********************
程序分为编译期和运行期 编译期 看类型 Animal a=new Cat(); 在编译器 这个a就是动物 动物 只能吃 不会抓老鼠 所以 a是不能够 直接调用 抓老鼠的 需要我们强制转换 运行期 看对象 Animal cat=new Cat(); Dog dog=(Dog)cat; 上面的代码中再编译期没有问题,因为编译期看类型 dog看做了 狗类型,可以调用看大门,但是运行期看对象,实际上这只狗看门的 时候发现了他不是一条真正的狗而是一只披着狗皮的猫,所以他看 大门的时候出错了。
************** 强制转换有风险,所以强转之前最好要判断一下。 判断该引用指向的对象是否是转换之后的对象 如何判断 Java给我们提供了一个 instanceof 关键字,我们可以使用该关键字 来进行判断,查看引用所指向的对象是不是我们想转 的类型,如果是 则 返回 true 不是则返回 false
package com.auto.javase.javaoop;public class Hero { private int money; public Hero() { this(500); System.out.println('11111111111'); }
public Hero(int money) { System.out.println('22222222222'); this.money=money; System.out.println('333333333333'); } }
public void testBXJG() { BXJG qtz=new QingTZ('擎天柱',5000); BXJG dhf=new DaHF('大黄蜂',3000); BXJG wzt=new WeiZT('威震天',4000); BXJG[] bxjg={qtz,dhf,wzt}; for(int i=0;i