我对在Java中强制转换对象意味着什么感到困惑
说你有......
Superclass variable = new Subclass object();
(Superclass variable).method();
这里发生了什么?变量类型是否更改,或者变量中的对象是否更改?很困惑。
发布于 2018-09-29 13:58:47
你引用的示例在java中称为Upcasting,创建一个子类对象,其中一个超类变量指向它。
变量不会改变,它仍然是超类的变量,但它指向子类的对象。
例如,假设有两个类机器和相机; Camera是Machine的子类
class Machine{
public void start(){
System.out.println("Machine Started");
}
}
class Camera extends Machine{
public void start(){
System.out.println("Camera Started");
}
public void snap(){
System.out.println("Photo taken");
}
}
Machine machine1 = new Camera();
machine1.start();
发布于 2018-09-29 14:15:11
看看这个示例:
public class A {
//statements
}
public class B extends A {
public void foo() { }
}
A a=new B();
//To execute **foo()** method.
((B)a).foo();
https://stackoverflow.com/questions/-100005047
复制相似问题