Example #1
0
  public static void main(String[] args) {

    // Upcast
    Cat cat = new Cat();
    Animal animal = cat;
    animal.sing();

    // Downcast
    Animal a = new Cat();
    Cat c = (Cat) a;
    c.sing();
    c.eat();

    // 编译错误
    // 用父类引用调用父类不存在的方法
    // Animal a1 = new Cat();
    // a1.eat();

    // 编译错误
    // 向下类型转换时只能转向指向的对象类型
    // Animal a2 = new Cat();
    // Cat c2 = (Dog)a2;
  }