使用abstract修飾的且沒(méi)有方法體的方法叫抽象方法;
1):使用abstract修飾,方法沒(méi)有方法體,留給子類(lèi)去實(shí)現(xiàn);
2):抽象方法不能使用private、static、final修飾;
3);抽象方法必須定義在抽象類(lèi)或接口中;
一般的,會(huì)把a(bǔ)bstract放在修飾符最前面,一看就知道是抽象方法
使用abstract修飾的類(lèi)叫抽象類(lèi);
1):不能創(chuàng)建對(duì)象,即不能new一個(gè)抽象類(lèi);
2):抽象類(lèi)可以包含普通方法,若一個(gè)類(lèi)中包含了抽象方法,則該類(lèi)必須是抽象類(lèi);抽象類(lèi)是
有構(gòu)造器的;
3):如果抽象類(lèi)的子類(lèi)沒(méi)有實(shí)現(xiàn)、覆蓋父類(lèi)所有抽象方法,那么子類(lèi)也得是抽象方法;
4):構(gòu)造方法不能是私有的,否則不能有子類(lèi);
抽象類(lèi)與普通類(lèi)的區(qū)別
普通類(lèi)的成員(字段、方法、構(gòu)造器)抽象類(lèi)全都有;
抽象類(lèi)不能創(chuàng)建對(duì)象,可以包含抽象方法;
抽象類(lèi)的意義
抽象類(lèi)是不能創(chuàng)建實(shí)例,只能被當(dāng)成父類(lèi)來(lái)繼承,抽象類(lèi)體現(xiàn)的是一種模板模式的設(shè)計(jì),抽象類(lèi)作為多個(gè)子類(lèi)的通用模板,從而避免了子類(lèi)設(shè)計(jì)的 隨意性;
模板方法設(shè)計(jì)模式:
在父類(lèi)的一個(gè)方法中,定義一個(gè)總的方法骨架;而某一些步驟延遲到子類(lèi)中,因?yàn)椴煌宇?lèi)的實(shí)
現(xiàn)細(xì)節(jié)不同;模板方法使得子類(lèi)在不改變算法結(jié)構(gòu)的情況下,重新定義算法中的某個(gè)步驟;
抽象父類(lèi)至少提供的方法:
1):模板方法,一種通用的處理方式,即模板(總體算法的骨架)
2):抽象方法:一個(gè)具體的業(yè)務(wù)功能實(shí)現(xiàn),由子類(lèi)完成;