美文网首页
Java15-1 覆盖中异常的使用

Java15-1 覆盖中异常的使用

作者: 第二套广播体操 | 来源:发表于2018-11-02 21:26 被阅读0次

    先看代码

    /*Exception
    --|AException
    ----|AAexception
    --|BEception*/
    class AException extends Exception{
        public AException(String message) {
            super(message);
        }
    }
    class AAException extends AException {
        public AAException(String message) {
            super(message);
        }
    }
    class BException extends Exception {
        public BException(String message) {
            super(message);
        }
    }
    class Fu{
         void Show()throws AException{
             System.out.println("Fu show");
         }
    }
    class Zi extends Fu{
             void Show()throws AAException{
                 System.out.println("zi show");
             }
    }
    class Tool{
        public  void Method(Fu fu)  {
           try {
               fu.Show();
           }
           catch (AException e){//无论抛出Aexception还是AAEception只要输入AException就能被捕获
               System.out.println(0);
           }
        }
    }
    public class TestExceptionDemo{
        public static void main(String[] args) {
            Tool tool=new Tool();
            tool.Method(new Zi());
        }
    }
    

    覆盖时,子类方法覆盖父类方法,只能抛出父类方法异常或者该异常的子类
    如果父类方法抛出多个异常,子类只能抛出父类异常的子集 (子类异常必须在父类异常的处理中)子类不能比父类抛新的异常
    父类已经有问题,子类不能比父类还有问题
    有一种情况只能try 不能throws声明
    被覆盖的方法没有抛出异常,子类在覆盖时,子类方法中发生了异常 只能try不能声明出去

    interface Inter{
        void Show(); //没有方法体时,方法不抛出异常
    }
    class D1 implements Inter{
       public void Show(){
            try {//子类不能比父类更有问题所以不能抛出
                throw new Exception();
            }
            catch (Exception e){//将编译检测异常转换为运行时异常,让程序停掉
                throw new RuntimeException();//这个异常不用声明
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:Java15-1 覆盖中异常的使用

          本文链接:https://www.haomeiwen.com/subject/jychxqtx.html