1、向上造型 简单来说就是 使用 父类的引用指向子类的对象动物 animal=new 狗(); 狗是动物Animal a=new Dog(); Animal a=new Cat(); 猫是动物在使用向上造型编程时需要注意 ********************
2、程序分为编译期和运行期编译期 看类型 Animal a=new Cat(); 在编译器 这个a就是动物 动物 只能吃 不会抓老鼠 所以 a是不能够 直接调用 抓佟聚吒甸老鼠的 需要我们强制转换运行期 看对象 Animal cat=new Cat(); Dog dog=(Dog)cat; 上面的代码中再编译期没有问题,因为编译期看类型 dog看做了 狗类型,可以调用看大门,但是运行期看对象,实际上这只狗看门的 时候发现了他不是一条真正的狗而是一只披着狗皮的猫,所以他看 大门的时候出错了。
3、************** 强制转换有风险,所以强转之前最好要判断一下。判断该引用指向的对象是否是转换之后的对象如何判断 Java给我们提供了一个 instanceof 关键字,我们可以使用该关键字来进行判断,查看引用所指向的对象是不是我们想转的类型,如果是 则 返回 true 不是则返回 false
4、package com.auto.javase.javaoop;public class Hero {private int money;public Hero() {this(500);System.out.println("11111111111");}
5、public Hero(int money) {System.out.println("22222222222");this.money=money;System.out.println("333333333333");}}
6、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<bxjg.length;i++) {bxjg[i].show();bxjg[i].fire();}}向上造型出变形金刚,就不需要每一个都写了。