铸造类型 - java

时间:2015-11-25 08:35:14

标签: object casting declaration instantiation

美好的一天,全部! 这是一个代码:

    class Monster {
}

class Dragon extends Monster {
    public void say() {
        System.out.println("I'm a dragon");
    }
}

class Orc extends Monster {
    public void say() {
        System.out.println("I'm an orc");
    }
}

public class CastingExample {
    public static void main(String args[]) {
        Monster monster1 = new Dragon();
        Monster monster2 = new Orc();

        ((Dragon)monster1).say();
        ((Orc)monster2).say();
    }
}

我理解什么是铸造。但我的问题是为什么起初作者的身份如Monster monster1 = new Dragon(); 为什么不从一开始Dragon monster1 = new Dragon();?我的意思是为什么有时...或者在哪些情况下程序员需要声明类型A,但创建B对象。 A a = new B();

0 个答案:

没有答案