1、抛出异常的子类方法,和不抛出异常的基类方法,不是等同的,你等于没覆盖;
2、要隐藏,用final static;
3、不能
4、对

解决方案 »

  1.   

    1. 不可以。基类抛出异常,子类可以不抛,但反过来不行。
    2。 只有 static方法才可以覆盖 static方法。
    3。 你说的两者好像没有什么必然联系吧。
    4。 对
      

  2.   

    to:wangwenyou(王文友) 
    首先谢谢你的回答对于第一条,我有异议
    java好像只是通过方法名和参数来识别不同的方法,而和方法所抛出的异常无关吧?
    如果不对,还望多指教
      

  3.   

    to:wangwenyou(王文友) 
    首先谢谢你的回答对于第一条,我有异议
    java好像只是通过方法名和参数来识别不同的方法,而和方法所抛出的异常无关吧?
    如果不对,还望多指教
      

  4.   

    我抛的是非检测异常啊
    做了个小程序,试了一下,结果可以public class B{
          
               
          public  void m(){
              System.out.println("1");
           }
    }class C extends B{
        public static void main(String[] args){
        C d=new C();
        d.m();
        }
               
        public void m() throws Error{
              System.out.println("2");
              super.m();
              
           }
    }
    结果为2
      

  5.   

    那也许就是Error的特性了:)
      

  6.   

    Error 和 Exception 应该不一样.Error以及 RuntimeException 是属于非检测性的, 任何程序都有可能发生. Java 并不强制你要 catch 这些系统性的错误和异常.
      

  7.   

    1。子类可以声明抛出“非检测异常”,对于需要检查的异常见 dylanwolf() 的回答。这是因为子类的实例应该可以用在任何可以用基类实例的地方。如果子类方法抛出基类方法中没有声明的需要检查的异常,这个条件就会被破坏。非检测异常不需要处理,所以不存在这个问题。
      

  8.   

    好,这个问题jimjxr(宝宝猫) 讲的很透彻,谢了,还有王文友