Ank*_*kur 4 java casting type-conversion
考虑以下代码:
public class Test{
public static void main(String str[]){
B b = new B();
A a1 = (A)b;//Explicit type conversion
A a2 = b;
}
}
class A{}
class B extends A{}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中有两行:
A a1 = (A)b;//Explicit type conversion
A a2 = b;
Run Code Online (Sandbox Code Playgroud)
当量?如果不是那么两者之间有什么区别,如果是,那么在java中我们需要将子类对象显式转换为超类对象吗?
Pet*_*rey 10
引用的显式类型转换,而不是对象)是多余的,一些IDE会建议你删除它.
如果你这样做
A a1 = (A)b;
Run Code Online (Sandbox Code Playgroud)
你仍然可以
B b2 = (B) A;
Run Code Online (Sandbox Code Playgroud)
将引用转换回B的类型
注意:对象不会以任何方式改变,并且始终是a B
java中没有你需要的场景吗?
您需要进行上传的唯一时间是方法选择.
void method(Object o) { }
void method(String s) { }
method("hello"); // calls method(String)
method((Object) "hello"); // calls method(Object)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13549 次 |
| 最近记录: |