这个问题是我自己的一个盲点问题,因为当我看到以下的代码以及选项的时候,我做出了错误的选择。后来,我知道了原因所在,但是我想应该会有很多不同的解释,特将问题列示如下。首先,先看一下代码:

public class Test
{
public static void main(String[] args)
{
A ref1 = new C();
B ref2 = (B) ref1;
System.out.println(ref2.g());
}
}
class A
{
private int f()
{
return 0;
}
public int g()
{
return 3;
}
}
class B extends A
{
private int f()
{
return 1;
} 
public int g()
{
return f();
}
}

class C extends B
{
public int f()
{
return 2;
}
}问题是:请问打印出来的是0,是1,是2,还是3?如果是ref1.g()的话,结果又是什么呢?也许问题很简单,还请各位不吝指教,谢谢!
博主遇到一个代码打印结果的盲点问题,看到代码及选项时做出错误选择,之后虽知道原因,但认为会有不同解释,列出代码并询问打印结果是0、1、2还是3,以及ref1.g()的结果,希望得到指教。
12万+

被折叠的 条评论
为什么被折叠?



