1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          AbstractMethodError那些事

          來源:互聯網轉載 時間:2024-01-29 07:40:50

          Java社區

          添加小編微信進入java學習交流群,小編微信:372787553,備注進群

          AbstractMethodError

          Exception in thread “main” java.lang.AbstractMethodError 這樣的異常并不常見,如果您有幸遇到了,那么一定要珍惜,否則轉瞬即逝!

          發生原因

          為什么會發生這樣的錯誤?

          讓我們看一下官方的解釋:

          當應用程序嘗試調用抽象方法時拋出。 通常,該錯誤被編譯器捕獲; 如果某些類的定義自上次編譯當前執行的方法以來不兼容地更改,則此錯誤只能在運行時發生。

          AbstractMethodError 結構

          演示錯誤以及解決方案

          創建V1.0抽象接口并實現

          abstract class B {    // v1.0    public abstract void changedMethodInDifVersion(int arg1);}class BImpl extends B{    @Override    public void changedMethodInDifVersion(int arg1) {        System.out.println("結果為:"+arg1);    }}

          驗證

          驗證代碼

          public class MainTest {    public static void main(String[] args) {        B dependency = new BImpl();        dependency.changedMethodInDifVersion(1);    }}

          結果

          以上的代碼都可以正常運行,接下來我們對接口進行升級改造

          創建V2.0抽象接口并實現

          abstract class B {    // v1.0//    public abstract void changedMethodInDifVersion(int arg1);    // v2.0    public abstract void changedMethodInDifVersion(int arg1,int arg2);}class BImpl extends B{    @Override    public void changedMethodInDifVersion(int arg1,int arg2) {        System.out.println("結果為:"+(arg1+arg2));    }}

          驗證

          代碼

          public class MainTest {    public static void main(String[] args) {        B dependency = new BImpl();        dependency.changedMethodInDifVersion(1,2);    }}

          結果

          神奇的發生了錯誤

          為何會發生錯誤的錯誤,是不是很尷尬,竟然中招了?

          來讓我們看看具體的報錯:

          Exception in thread "main" java.lang.AbstractMethodError: Receiver class com.javayh.json.test.BImpl does not define or inherit an implementation of the resolved method 'abstract void changedMethodInDifVersion(int, int)' of abstract class com.javayh.json.test.B.at com.javayh.json.test.MainTest.main(MainTest.java:16)

          我們可以看到does not define or inherit an implementation of the resolved method 'abstract void changedMethodInDifVersion(int, int)' of abstract class 這樣的提示,但是我們已經繼承了該類的方法?那么錯誤肯定不在我們的代碼,而在他編譯解析的地方出了錯誤!接下來我們看看編譯后的源碼;

          神奇的發現,BImpl 內的方法并沒編譯成功,這樣我們重新進行編譯,javac一下

          這是我們我們發現錯誤已經解決,可以正常的運行!

          為何會這樣?其實在文章的起始位置已經說了發生原因,這是我們在來理解一下:

          當應用程序嘗試調用抽象方法時拋出。 通常,該錯誤被編譯器捕獲; 如果某些類的定義自上次編譯當前執行的方法以來不兼容地更改,則此錯誤只能在運行時發生。

          理解:

          • 該錯誤被編譯器捕獲: 現在的開發工作已經都轉向了各種開發工具,這樣的錯誤應該不會發生,大佬們使用記事本寫代碼 時,很有可能發生
          • 如果某些類的定義自上次編譯當前執行的方法以來不兼容地更改 當我們對原有的方法進行了升級改造,開發工具為我躲避了第一步的錯誤,但是并沒有辦法完全的躲避編譯時的錯誤,這時我們執行就會報如上的錯誤了,這時候我們只需要重新執行編譯一下 javac/mvn compile

          138687.html

          上一篇:DWR簡介
          下一篇:遞歸方法

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          華三h3c路由器好嗎?你好,,華三H3C路由的品牌是一流的,比普通路由好很多。他們以前是大型網絡設備供應商,現在也從事家庭路由的生產。技術上沒有問題。杭州H3C科技有限公司(簡稱H3C)主要提供IT基礎設施產品和解決方案的研發、生產、銷售和服務。H3C在有38家分公司。目前,公司擁有5000名員工,其中研發人員;ampd類人員占55%。截至2013年底,H3C已經服務了超過70%的中央部委、9個國...

          RMHD有哪些優點?Realmedia HD,RealNetworks的繼任者?RMVB視頻編解碼器,提供卓越的圖像質量,在移動設備上提供高清晰度(高達8K)體驗-通過互聯網為觀眾提供所選設備上的高質量視頻。與H.264相比,realmedia HD技術的壓縮效率提高了30%-45%,從而釋放了設備的存儲空間,提供了高清圖像,提高了傳輸效率,降低了數據成本。realmedia HD產品套件在流媒體...

          psp如龍有沒有漢化的?possp上的兩個模特像龍。比如龍1新篇章和龍2阿修羅篇章,這兩個游戲之前都是有人填的,然后一直沒有消息,應該是沒有消息,就像多多的軌跡也是有人挖的,但是這個游戲目前還是沒有中文版,可以去攻略游戲對抗攻略。畢竟,在過去的PS1和PS2時代,很少有游戲。更不用說FC時代了。如龍有幾個版本?如龍系列抵得上七部以一馬Kiryu為主角的如龍作品。即如龍1.2.3.4.5.0.6?!?..

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>