Which two declarations prevent the overriding of a method? (Choose Two) 
A. final void methoda()  {}
B. void final methoda() {}
C. static void methoda() {}
D. static final void methoda() {}
E. final abstract void methoda() {} 
为什么答案是AD呢,B,D,E可以重写么,A和B在使用上有什么区别,D,E很不明白,

解决方案 »

  1.   

    A和B:因为B是错误的,不能这样定义,A才正确
    C:楼主没有疑惑了
    D和E: E是错误的,final不能修饰抽象的方法楼主可以写个类测试下
      

  2.   

    final void methoda()  {}  //修饰一般的方法
    static final void methoda() {} //修饰静态方法
      

  3.   

    A和B在使用上有什么区别
    对于修词的顺序 JAVA有着严格规范先FINAL后VOID
    D也是修辞顺序问题
    E. final abstract void methoda() {} 
      这是个不能被继承的抽象方法.那还要抽象方法干啥?
      应该是 abstract void methoda() 抽象方法是没BODY的