class One
{
void show1()
{
System.out.println("super class");
}
}
class Two extends One
{
static void show2()
{
System.out.println("subclass");
}
}
public class Cast
{
public static void main(String[] args)
{
One o=(One) new Two();
o.show1();
}
}
此语句在此代码中如何工作One o=(One) new Two();
?为什么我不能这样使用
Two o=(One) new Two();
?我对使用强制转换感到困惑,尽管这里的 o 是超类变量。为什么我不能使用 o 引用子类方法?