[OCPJP]覆寫能拋出例外的方法

Given:

and the code fragment:

Which modification enables the code fragment to print Happy Journey!?

A. Replace line n1 with public void ride() throws FuelNotAvailException {
B. Replace line n1 with protected void ride() throws Exception {
C. Replace line n2 with void ride() throws Exception {
D. Replace line n2 with private void ride() throws FuelNotAvailException {

題解

FuelNotAvailException繼承Exception,屬於checked exception

題目原先的程式會在line n2編譯失敗,因為SolarVehicle的ride方法覆寫了Vehicle的ride方法,Vehicle的ride方法會拋出FuelNotAvailException,所以SolarVehicle的ride方法只能不拋出例外、拋出unhecked exception或是拋出FuelNotAvailException或其子例外。

選項A,對編譯問題沒有幫助。

選項B,正確。

選項C,對編譯問題沒有幫助。

選項D,可見度需要大於等於default,使用private會編譯錯誤。

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章