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
.
假设我有一个抽象 class A 和一个名为 B 的 class 扩展它。这样初始化有什么区别:
A objectname=new B();
还有这个
B objectname=new B();
在这两种情况下,您都将创建 B
的实例。唯一的区别是您分配此实例的位置。在第一个片段中,objectname
的类型为 A
,因此您将无法使用 B
中不属于 A
的方法,除非您显式地强制转换它到 B
.