定義類頭時能用到的修飾符 類和接口有什么關(guān)系?
類和接口有什么關(guān)系?不同的設(shè)計(jì)理念有不同的使用動機(jī)。設(shè)計(jì)抽象類和接口時,設(shè)計(jì)思路是不一樣的。設(shè)計(jì)抽象類是一個自下而上的過程,因?yàn)檎{(diào)用者子類需要某些屬性和獨(dú)特的行為,所以調(diào)用者繼承抽象類和設(shè)計(jì)接口是一個
類和接口有什么關(guān)系?
不同的設(shè)計(jì)理念有不同的使用動機(jī)。
設(shè)計(jì)抽象類和接口時,設(shè)計(jì)思路是不一樣的。設(shè)計(jì)抽象類是一個自下而上的過程,因?yàn)檎{(diào)用者子類需要某些屬性和獨(dú)特的行為,所以調(diào)用者繼承抽象類和設(shè)計(jì)接口是一個自上而下的過程。接口規(guī)范了某個行為,我的類需要這個行為,調(diào)用者實(shí)現(xiàn)了一個接口。
開發(fā)者在使用它的時候有不同的動機(jī)。開發(fā)人員繼承抽象類是為了使用抽象類的屬性和行為。開發(fā)人員實(shí)現(xiàn)接口只是為了使用接口的行為。
差異匯總:
區(qū)別1::抽象類只能單個繼承,接口可以實(shí)現(xiàn)更多。
區(qū)別二::抽象類是一個類,可以用任何權(quán)限修飾符修飾,有靜態(tài)和非靜態(tài)屬性,有final和非final屬性,可以有抽象方法和非抽象方法;
接口只能由public和final修飾,只能有靜態(tài)方法,即使沒有顯示的聲明,也不能修改;
區(qū)別3 :抽象的東西和:定義它的時候,定義抽象類和接口的思路是不一樣的。Ttt設(shè)計(jì)抽象類是一個自下而上的過程,是我們子類需要的,所以我定義抽象類。Ttt界面設(shè)計(jì)是一個自上而下的過程。我的界面規(guī)范了某種行為。我需要某個類的這個行為,我實(shí)現(xiàn)了一個接口。
核心區(qū)別是:
來電者 s的動機(jī)不一樣,實(shí)現(xiàn)接口是為了使用他規(guī)范的某個行為;
繼承抽象類就是使用這個類的屬性和行為。
簡單地說,:。
我們知道抽象類是從子類中找到共同的部分然后歸納成抽象類,子類可以繼承父類,只是接口不同。實(shí)現(xiàn)它的子類可以沒有共同點(diǎn)。比如貓和狗可以抽象成一個抽象的動物類,有叫的方法。鳥類和飛機(jī)可以實(shí)現(xiàn)Fly接口,具有飛行的行為。我們可以 不要在這里與鳥和飛機(jī)共用一個父類!因此,抽象類體現(xiàn)了一種繼承關(guān)系。為了使繼承關(guān)系合理,父類和派生類之間必須有關(guān)系。
方法重寫和方法重載的區(qū)別是什么?
1.重寫必須繼承,不需要重載。
2.用相同數(shù)量的參數(shù)、兼容的參數(shù)類型、相同的重載方法名和不同的參數(shù)列表重寫方法名。
3.重寫的方法修飾符大于或等于父類的方法,重載與修飾符無關(guān)。
4.重寫不能拋出父類不拋出的一般異常,但可以拋出運(yùn)行時異常。