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