日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Exception在方法继承中的限制

發布時間:2024/1/17 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Exception在方法继承中的限制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題:

父類或接口中定義了方法應該拋出的異常,那么當子類重寫方法時應該怎樣定義將要拋出的異常:

首先定義異常和父類:

1 class Exception1 extends Exception {} 2 class Exception2 extends Exception {} 3 class Exception3 extends Exception {} 4 class Exception1_1 extends Exception1 {} 5 class Exception2_1 extends Exception2 {} 6 class Exception3_1 extends Exception3 {} 7 class SuperClass { 8 public void method1() throws Exception1 , Exception2 , Exception3 {} 9 }

正確的方法覆蓋:

1. 子類方法只能拋出父類異常的子集合:

1 public class TestExceptionLimit extends SuperClass { 2 @Override 3 public void method1() {} 4 } public class TestExceptionLimit extends SuperClass {@Overridepublic void method1() throws Exception1 {} } 1 public class TestExceptionLimit extends SuperClass { 2 @Override 3 public void method1() throws Exception1 , Exception2 , Exception3 {} 4 }

上面三種都可以。

2. 子類可以拋出父類異常的導出類:

1 public class TestExceptionLimit extends SuperClass { 2 @Override 3 public void method1() throws Exception1_1 , Exception2_1 {} 4 }

3. 還有一種特殊的情形,當子類同時繼承一個父類和實現一個接口,而且這個父類和接口同時定義了簽名一樣的方法,但是拋出異常不一樣,那么子類應該怎樣定義自己的方法異常:

新的代碼:

1 class Exception4 extends Exception {} 2 class Exception5 extends Exception {} 3 4 class SuperClass { 5 public void method1() throws Exception4{} 6 } 7 interface TestInterface { 8 public void method1() throws Exception5 ; 9 }

正確的覆蓋:

1 public class TestExceptionLimit extends SuperClass implements TestInterface { 2 @Override 3 public void method1(){} 4 }

注意:不要拋出任何異常,下面可以證明:

1 public class TestExceptionLimit extends SuperClass implements TestInterface { 2 @Override 3 public void method1() throws Exception4 {} 4 }

這段代碼編碼會出錯,錯誤信息為:Exception Exception4 is not compatible with throws clause in TestInterface.method1()。表示和接口定義的異常不匹配,如果你嘗試拋出Exception5它又會告訴你和父類定義的異常不匹配,所以不寫還不行嘛--!,Java設計者們還是挺人性化的~~~

?

轉載于:https://www.cnblogs.com/caiyao/p/4736973.html

總結

以上是生活随笔為你收集整理的Exception在方法继承中的限制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。