相关疑难解决方法(0)

如果覆盖类的子类中的字段,子类有两个具有相同名称(和不同类型)的字段?

我有3个班:

public class Alpha {
    public Number number;
}

public class Beta extends Alpha {
    public String number;
}

public class Gama extends Beta {
    public int number;
}
Run Code Online (Sandbox Code Playgroud)

为什么以下代码编译?而且,为什么测试通过没有任何运行时错误?

@Test
public void test() {
    final Beta a = new Gama();
    a.number = "its a string";
    ((Alpha) a).number = 13;
    ((Gama) a).number = 42;

    assertEquals("its a string", a.number);
    assertEquals(13, ((Alpha) a).number);
    assertEquals(42, ((Gama) a).number);
}
Run Code Online (Sandbox Code Playgroud)

java subclassing jls

51
推荐指数
2
解决办法
4万
查看次数

标签 统计

java ×1

jls ×1

subclassing ×1