是在25行,造型错误,没有显式的转化因为Test-->Q2是下溯造型要主动的转化
而Q2->Test是一个上溯造型没关系(22行)

解决方案 »

  1.   

    No..No
    static方法是没有重置一说.所以没错呀
    你可以想象一下
    Test t = new Q2();
    t.show();
    会是 Show method in Q2 class.
    这么写只是为了迷惑你,静态方法是跟着类的.就看你编译时方法前的载体是什么类.
    而实例方法方法编译时只能确定方法名和参数.具体的载体无法确定.
      

  2.   

    static方法是没有重置一说.所以没错呀
    但我记得很多教材中都有STATIC方法不可以OVERRIDE啊。您的意思是说可以在子类中
    写一个与SUPER中的静态方法同方法名,同返回值,同参数的的静态方法了吗?
      

  3.   

    to楼上:“static方法是没有重置一说.所以没错呀”
    但我记得很多教材中都有STATIC方法不可以OVERRIDE啊。您的意思是说可以在子类中
    写一个与SUPER中的静态方法同方法名,同返回值,同参数的的静态方法了吗?
      

  4.   

    static方法是可以被override的,只有final不可以被override
    编译错误在25行,q = t; 是下溯
      

  5.   

    补充:
    你是准备去考什么scjp吗?
    不能说考了没用,但没什么大用.
      

  6.   

    to up:
    你粘下来,编译一下。
    根本不能编译。
      

  7.   

    A static method may not be overriden to be non-static
      

  8.   

    上面程序编译时提示 q=t 错误!
     将q=t删除结果如下:
    "Show method in Test class" 
    "Show method in Q2 class" 
    "Show method in Test class" 
    "Show method in Q2 class" 
      

  9.   

    CHOOSE D,错误原因:类型不兼容
      

  10.   

    我编译/运行了代码:11行是对的在这里有一个不太清楚的地方:
    不管show()是不是static,编译器都把这"称为"override,但要注意:
    如果show()不是static,则这是真正的多态/override,
    如果show()是static,则这不是真正的多态/override,是hide
      

  11.   

    静态方法Override规则:
    静态方法可以override为静态方法,但不能override为非静态方法
    非静态方法可以override为非静态方法,但不能override为静态方法。
    静态方法的绑定是在Compile time确定的,非静态方法的绑定是在Run time时确定的我想这些理论会对你有所帮助
    Oicq:1818477欢迎交流
      

  12.   

    “静态方法的绑定是在Compile time确定的,非静态方法的绑定是在Run time时确定的”准确!谢谢!哈哈哈哈哈