抽象方法:是指由abstract修飾萧福,只有方法的定義,沒(méi)有具體的實(shí)現(xiàn)(沒(méi)有{})辈赋。
抽象類(lèi):是指由abstract修飾鲫忍,其中包含抽象方法的類(lèi)必須是抽象類(lèi)(不包含抽象方法的類(lèi)也可以聲明為抽象類(lèi))。
特點(diǎn):抽象類(lèi)不能被實(shí)例化钥屈,是需要被繼承的悟民;子類(lèi)需要重寫(xiě)所有抽象方法,除非也聲明為抽象類(lèi)(不建議)篷就。
意義:1)封裝所有子類(lèi)所共有的屬性和行為-------代碼復(fù)用
2)為所有子類(lèi)提供了統(tǒng)一的類(lèi)型-----------向上造型
3)可以包含抽象方法射亏,為所有子類(lèi)提供了統(tǒng)一的入口;子類(lèi)的具體實(shí)現(xiàn)是不同的竭业,但方法的定義是一致的
接口:是一個(gè)標(biāo)準(zhǔn)智润、規(guī)范,遵守該標(biāo)準(zhǔn)就能干某件事(API才理解)未辆,其是一種數(shù)據(jù)類(lèi)型窟绷,由interface定義,只能包含常量和抽象方法咐柜。
特點(diǎn):
1)接口不能被實(shí)例化
2)接口是需要被實(shí)現(xiàn)的兼蜈,實(shí)現(xiàn)類(lèi),必須重寫(xiě)接口中的所有抽象方法
3)一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口炕桨,用逗號(hào)分隔饭尝,若又繼承又實(shí)現(xiàn)時(shí)肯腕,應(yīng)先繼承后實(shí)現(xiàn)
4)接口可以繼承接口
抽象類(lèi)和接口的區(qū)別:
1)一個(gè)類(lèi)只能繼承一個(gè)抽象類(lèi)献宫,但可以實(shí)現(xiàn)多個(gè)接口
2)抽象類(lèi)中可以包含抽象方法和非抽象方法,而接口中的所有方法均為抽象的实撒。
3)子類(lèi)繼承抽象類(lèi)必須實(shí)現(xiàn)抽象類(lèi)中所有抽象方法姊途,否則子類(lèi)也必須是抽象類(lèi)涉瘾。而子類(lèi)實(shí)現(xiàn)接口則必須實(shí)現(xiàn)接口中的所有抽象方法。
下面完成求一組圖形中最大面積的案例:
下面測(cè)試一下代碼:
最后輸出結(jié)果為:
根據(jù)常識(shí),也判斷出程序沒(méi)問(wèn)題贡茅。