00:00
好,那刚才呢抛出一个问题,说我们在开发当中到底是选择用try catch finally还是应该用ROS这个呢,还是确实得具体问题具体看啊,但是呢,也有一些经验性的东西,但是写这个之前呢,咱们呢先把一个事儿呢回顾一下,就是咱们前面讲这个方法重写的时候,题供呢说方法呢是可以抛出异常的,那么如果父类当中被重写的这个方法抛了一个异常,那此类这块呢,我们说也抛异常,在抛异常这个方面,咱们当时呢说也得满足一定的规则,这个咱们当时说的是怎么着来着,此类呢可以比负类抛出异常大还是小,确实有人结混了,这个可以小,这个是大的啊,那也就是说呢,比如我们那个负类当中,你是一个IO的exception,那你要是在这儿呢,你也可以是个IO的,你也可以是一个fo的,Not found exception,就是你可以变得更小一些,这个意思行,那这个事呢,咱们来。
01:00
演示一下,嗯,这里边的代码呢,看着就稍微多一些了,这个不妨呢,我就这样,我再整一个叫JAVA1叫JAVA1了,然后呢,嗯,咱们把这个,那其实这样也还行是吧,拿一下吧,我把这个呢都放到下边吧,啊就是咱们是先讲的这两个,然后呢看下边这些,好把这个呢,我就先关一下,然后在这里边,我们现在呢去写个代码啊,关于这个方法这块方法的一个over方法的重启叫over什么呀,Overload这重载了overre或者overri啊它的这样的一个测试了,好这呢我们写一下咱们测什么,这个是关于这个叫方法重写的这个规则之一,在这呢就提到了说嗯子类重写的。
02:00
方法抛出的异常类型,那这个类型呢,说不大于这个负类,被重写的这个方法抛出的这异常类型,咱们当时呢,是这样子说的行,下边呢,咱们来演示一下,以及呢可以解释一下说诶为什么有这样一个要求,这呢我class一个叫super class,这是一个所谓的负类了,然后在这个负类里边,我们public VO,我就写一个method的方法,这个方法的话呢,可以有具体的方法体,这呢我就不具体写这个方法体了,我就这块呢,不管你是什么,我都可以给你slow一个,我slow一个呢叫IO的exception,就相当于这个方法呢,是可能抛一个IO异常的啊,这个我们导下包,然后接下来呢,我们去声明一个此类叫sub class extend,咱们的叫super class,行继成一类。
03:00
集成复雷以后呢,我们这个方法呢,可以去重启,那比如说我这CTRLC一下我就粘过来了,这算不算重启已经看到了,其实算就是说你这个此类这个可以比它小小小小小到一个极限,不就相当于没有嘛,所以没有也是可以的啊,那么你要是有的话呢,你可以这个这个声明这个IO except没问题,这样咱俩一样大了,但是你要说声明是一个比IO还大的,这个就不行了啊,你可以变小,你可以写一个叫file not found这个呃,Found这是没问题的,这个我们所谓的说叫不大于的意思啊,打下包,那么可以顺便来想一想,为什么会有这样的一个约定,对啊对啊,说出来了,比如说咱们在这个,嗯,我这是一个测试了,测试这里边我写一个方法叫public,我写一个public啊,我写一个word,我也写一个普通的方法。
04:00
叫呃叫play吧,行这个方法这块呢,我现在传了一个什么呢,我传了一个父类的一个声明,写了一个他在这里边呢,我想通过这个S呢,去调了一个method,这个能看懂对吧,我调了1METHOD的话呢,这个method呢,说有可能会抛一个l exception,那这块呢,咱们就可以呢,我这才开始了,现在我给处理掉了。现在我给处理掉了,然后的话呢,我们真正去调这个display方法的时候,咱们讲过多肽了,Control c control v,这里我写一个test。哎,我通过这个test呢,我去调了一个叫display,那这时候呢,我们需要传个对象,那我这时候恰好呢,我就用了一个叫sub class,用了一个子类对象,这是前面这个多态性,那么多肽的时候呢,当我们这个通过S去调method的,实际上我们调的是不是就子类重写的这个方法了,对,那我调了一个方法,调的方法呢,诶恰好呢,他还确实抛了有异常。
05:03
那你这时候想,我要是抛了一个,这个异常比我这个负类的还小,你这个呢,是不是也能罩得住?对,那我这要是假设你允许抛一个叫exception。那相当于我抛了一个比你这个IO呢,可能还大的一个异常,还大的异常呢,你到这块你是不是罩不住啊,对,那不相当于你这个代码呢,写的是不是就有缺陷啊,就是我明明把异常都处理掉了,结果呢,你还出现一个异常,那这呢,就属于你这个语言设计上有问题啊,所以说呢,你可以理解,通过这样的一个角度我们去体会一下,说呢,我们设置这样的一个规则呢,还是有意义的啊这个。CTRLY一下,诶,我们设置这样的一个规则呢,还是有意义的,就是要求呢,我们这个此类抛异常呢,你不能超过这个负类了,负类的一个被重写的方法行,那么再换过来,换句话说,如果我们这个负类的这个方法中没有抛异常。
06:00
那子类这块呢,能不能抛啊,那绝对不能抛了,人家都没有抛到你这儿呢,绝对不允许出现异常了。
我来说两句