美好的一天,全部! 这是一个代码:
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();
?