class J_SuperClass
{
  public void mb_method(int i)
  {
   }
}
public class J_Test extends J_SuperClass
{
   //选项方法插入位置
  public static void main(String args【】)
  {
  }
}
(A)void mb_method(int i) throws Exception{}
(B)void mb_method(long i) throws Exception{}
(C)void mb_method(long i) {}(D)public void mb_method(int i) throws Exception{}
 请高手解释一下怎么做这题

解决方案 »

  1.   

    感觉选项都不对....
    J_Test继承自J_SuperClass,话说子类不能抛出比父类更多的异常.那么(A)(B)(D)就都不能选.(C)又明显地参数类型不一样.不知道我的想法有没有问题.还是对题本身的理解有问题?
      

  2.   

    两条:
    1、可访问性不能比父类方法小
    2、抛的异常不能比父类方法大(父类方法不声明抛异常,子类不能声明抛checked异常,但可以声明抛出RuntimeException或者它的子类;父类声明抛checked异常,子类可以不声明抛异常,也可以声明抛出与父类一样的异常或者是他的子类,或者是RuntimeException以及它的子类)
    排除A、D
    剩下的B、C都是对的,重载了mb_method而已,不是重写
      

  3.   

    按照第一个解释long和int都可以,按照第二个解释并不能排除ABD,可以再详细的解释一下吗。谢谢
      

  4.   

    (A)void mb_method(int i) throws Exception{}
    可访问性变小了,排除~~另外父类方法不声明抛checked异常,所以子类重写的方法只能声明抛unchecked Exception,也可以排除
    (D)抛异常,理由同上,你可以试着让它抛出RuntimeException就可以了,可以看看Java Tutorial有关异常 处理的内容