我真的不明白为什么这行代码不能编译:
String str = new Object();
而以下是:
Object o = new String("Hello");
据我了解,String和其他所有类一样,都扩展了Object。那么为什么第一行不编译呢?
因为String
是一个Object
,但Object
不是一个String
,就像每个橙色都是一个水果,但并非每个水果都是一个橙色。
String
是Extended的类Object
,因此您可以简单地编写:
Object obj = "string";
但Object
不扩展String
,因此:
String str = new Object();
不会编译。
但是,如果您有一个Object
,并且它是一个String
,则可以执行称为类型转换或简单地转换的操作:
String str = (String) myObject;
但是它可能会抛出一个ClassCastException
if,如果myObject
不是最初的类型String
在这里,您可以找到有关Java中对象转换的更多信息:http : //www.javabeginner.com/learn-java/java-object-typecasting
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句