java 中初始化对象的差异

Difference in initialazing objects in java

假设我有一个抽象 class A 和一个名为 B 的 class 扩展它。这样初始化有什么区别:

A objectname=new B();

还有这个

B objectname=new B();  

在这两种情况下,您都将创建 B 的实例。唯一的区别是您分配此实例的位置。在第一个片段中,objectname 的类型为 A,因此您将无法使用 B 中不属于 A 的方法,除非您显式地强制转换它到 B.