資源描述:
《Java抽象類.ppt》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、抽象類和接口第四章Java中的抽象類、接口和程序包——抽象類與抽象方法抽象類:用abstract關鍵字來修飾一個類時,該類叫做抽象類;抽象類必須被繼承。抽象類不能被直接實例化。它只能作為其它類的超類,這一點與最終類(final類)正好相反。抽象方法:用abstract來修飾一個方法時,該方法叫做抽象方法。抽象方法必須被重寫抽象方法只有聲明,不能有實現(xiàn)。定義了抽象方法的類必須是抽象類。abstractreturnTypeabstractMethod([paramlist]);——抽象類與抽象方法抽象類和最終類聲明抽象類與抽象方法publicabstractclassPlaneGrap
2、hics1//平面圖形類,抽象類{publicabstractdoublearea();//計算面積,抽象方法,分號“;”必不可少}抽象類和最終類規(guī)定:抽象類不能被直接實例化,只有它的非抽象子類可以創(chuàng)建對象抽象類中不一定包含抽象方法,但有抽象方法的類必定是抽象類抽象類中的抽象方法只是聲明,不包含方法體,即不給出方法的實現(xiàn)構(gòu)造方法、類方法不能聲明為抽象方法抽象類的子類必須給出抽象類中的抽象方法的具體實現(xiàn),除非該子類也是抽象類抽象類和最終類抽象類的意義:描述抽象的概念,規(guī)定必須實現(xiàn)的方法的統(tǒng)一接口關于抽象類和抽象方法Abstracttest.java最終類和最終方法final關鍵字修飾
3、的類稱為最終類,最終類不能被繼承final關鍵字修飾的方法稱為最終方法,最終方法不能被覆蓋最終方法和最終類沒有必然的對應關系Java中的接口1、含義:一組只有成員函數(shù)原型定義而無成員函數(shù)定義體的方法集。接口定義了一組成員函數(shù),但沒有具體加以實現(xiàn),其實現(xiàn)則是由實現(xiàn)該接口的類來加以具體完成的。2、作用:為若干個類(相關或無關的類)定義一組相同的功能行為,從而達到相同的功能名稱,不同的功能實現(xiàn)之目的;另外也可以實現(xiàn)類似C++語言中的多重繼承但又避免了虛基類的編程。接口的概念在構(gòu)建問題的類過程中,我們經(jīng)常會遇到一種特殊的情況,在描述某個類的各個方法時,對每個方法我們只能給出其功能實現(xiàn)的
4、要求(原形聲明)但不能給出具體的功能實現(xiàn)(函數(shù)定義體)。因為我們所處理的問題只是一個泛泛的功能說明,并沒有針對某一具體類型的問題來說明。接口定義格式要點:類似于類的定義格式,只是以interface作為定義符。格式:接口的類型interface接口名{常量(并且必須初始化);成員方法定義(只有原形而無函數(shù)定義體);}或:接口的類型interface派生的接口名extends父接口名列表{接口中的成員變量定義;接口中的成員方法原型定義;}實現(xiàn)接口方法:通過定義一個類同時采用implements來指明所實現(xiàn)的接口名,并在該類中重寫接口中的所有成員方法且給出成員函數(shù)體定義。要點類中所
5、實現(xiàn)的接口中的成員函數(shù)的原型都應該與它在接口中的原型定義保持一致;并在類中重寫接口中的所有成員方法;通過實現(xiàn)接口,從而可擴充或增加該類的功能。接口只定義方法名,而類實現(xiàn)接口內(nèi)部的方法的代碼接口的繼承只是繼承接口本身,而非代碼,從而不會產(chǎn)生重復繼承多次。注意的一個類可以實現(xiàn)多個接口實現(xiàn)接口的類必須給出接口中所有方法的具體實現(xiàn)!除非這個類是抽象類接口的作用接口提供了完全的抽象說明所有實現(xiàn)該接口的類應具有的形式接口中的方法在多個實現(xiàn)接口的類中表現(xiàn)出多態(tài)性接口回調(diào)接口也是引用數(shù)據(jù)類型,指向接口的引用也可以指向任意實現(xiàn)了該接口的類創(chuàng)建的實例接口回調(diào),即接口的引用可以指向?qū)崿F(xiàn)了接口的類的實例例
6、子:Interfacetest.java例子interfaceComputer{publicvoidComputeData();//計算機應該有數(shù)據(jù)計算的功能publicvoidSaveData();//計算機應該有存儲數(shù)據(jù)的功能publicvoidPrintData();//計算機應該有打印數(shù)據(jù)的功能publicvoidDisplayData();//計算機應該有顯示數(shù)據(jù)的功能}抽象類和接口的對比接口和類是很相似但又有區(qū)別的一種數(shù)據(jù)結(jié)構(gòu),其設計和調(diào)用也是JAVA程序設計的一種重要技術。從結(jié)構(gòu)上看,接口有如下特點:接口用interface來定義,而不是class接口中定義的
7、變量去全部是最終的靜態(tài)變量接口中沒有自身的構(gòu)造方法,不能創(chuàng)建實例,而定義的其他方法全是抽象方法,即提供了方法的定義,但是沒有提供方法的實現(xiàn)。接口采用多重繼承機制,而不是采用單一的繼承機制。接口與抽象類的區(qū)別抽象類和接口中主要關心的都是抽象,而不關心具體的實現(xiàn)。但也有一些區(qū)別:一個類只能繼承一個類,但可以實現(xiàn)多個接口抽象類表示一種繼承關系,接口只說明功能二者的區(qū)別主要體現(xiàn)在對問題域的理解上抽象類的應用abstractclassPerson{privateintID;pr