Java基礎學習:java抽象方法

Java基礎學習:java抽象方法

長沙牛耳教育      2022-04-13 07:28:01     2

Java基礎學習:java抽象方法,在我們所有樂器(Instrument)例子中,基礎類Instrument內的方法都肯定是偽方法。若去調用這些方法,就會出現(xiàn)錯誤。那是由于Inst

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹

    在我們所有樂器(Instrument)例子中,基礎類Instrument內的方法都肯定是“偽”方法。若去調用這些方法,就會出現(xiàn)錯誤。那是由于Instrument的意圖是為從它衍生出去的所有類都創(chuàng)建一個通用接口。

    之所以要建立這個通用接口,唯一的原因就是它能為不同的子類型作出不同的表示。它為我們建立了一種基本形式,使我們能定義在所有衍生類里“通用”的一些東西。為闡述這個觀念,另一個方法是把Instrument稱為“抽象基礎類”(簡稱“抽象類”)。若想通過該通用接口處理一系列類,就需要創(chuàng)建一個抽象類。對所有與基礎類聲明的簽名相符的衍生類方法,都可以通過動態(tài)綁定機制進行調用(然而,正如上一節(jié)指出的那樣,如果方法名與基礎類相同,但自變量或參數(shù)不同,就會出現(xiàn)過載現(xiàn)象,那或許并非我們所愿意的)。如果有一個象Instrument那樣的抽象類,那個類的對象幾乎肯定沒有什么意義。換言之,Instrument的作用僅僅是表達接口,而不是表達一些具體的實施細節(jié)。所以創(chuàng)建一個Instrument對象是沒有意義的,而且我們通常都應禁止用戶那樣做。為達到這個目的,可令Instrument內的所有方法都顯示出錯消息。但這樣做會延遲信息到運行期,并要求在用戶那一面進行徹底、可靠的測試。無論如何,最好的方法都是在編譯期間捕捉到問題。

    針對這個問題,Java專門提供了一種機制,名為“抽象方法”。它屬于一種不完整的方法,只含有一個聲明,沒有方法主體。下面是抽象方法聲明時采用的語法:abstractvoidX();

    包含了抽象方法的一個類叫作“抽象類”。如果一個類里包含了一個或多個抽象方法,類就必須指定成abstract(抽象)。否則,編譯器會向我們報告一條出錯消息。

    若一個抽象類是不完整的,那么一旦有人試圖生成那個類的一個對象,編譯器又會采取什么行動呢?由于不能安全地為一個抽象類創(chuàng)建屬于它的對象,所以會從編譯器那里獲得一條出錯提示。通過這種方法,編譯器可保證抽象類的“純潔性”,我們不必擔心會誤用它。

    如果從一個抽象類繼承,而且想生成新類型的一個對象,就必須為基礎類中的所有抽象方法提供方法定義。

    如果不這樣做(完全可以選擇不做),則衍生類也會是抽象的,而且編譯器會強迫我們用abstract關鍵字標志那個類的“抽象”本質。

    即使不包括任何abstract方法,亦可將一個類聲明成“抽象類”。如果一個類沒必要擁有任何抽象方法,而且我們想禁止那個類的所有實例,這種能力就會顯得非常有用。

    Instrument類可很輕松地轉換成一個抽象類。只有其中一部分方法會變成抽象方法,因為使一個類抽象以后,并不會強迫我們將它的所有方法都同時變成抽象。

 以上就是長沙牛耳教育java培訓機構的小編針對“Java基礎學習:java抽象方法”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

Java基礎學習

培訓啦提醒您:交易時請核實對方資質,對于過大宣傳或承諾需謹慎!任何要求預付定金、匯款等方式均存在風險,謹防上當。