【发布时间】:2014-01-22 23:01:20
【问题描述】:
我想知道,在这个例子中如何:
public class Test
{
public int getA()
{
return 1;
}
public static class Test2 extends Test
{
@Override
public int getA()
{
return 2;
}
}
public static void main(String[] args)
{
Test2 a = new Test2();
System.out.println(a.getA());
}
我可以得到 1 作为结果吗? 有什么办法吗?获取测试方法对我很有用。
【问题讨论】:
-
这就是多态性的基础。你需要写
Test a = new Test();来获得你想要的东西......你可能应该解释你需要这种行为的场景:可能有更好的方法...... -
如果您想同时访问基类和继承的实现,请不要覆盖。也许您希望
Test拥有一个具有不同签名的方法,该方法执行getA()现在所做的事情。
标签: java class methods overriding