Синтакса:
апстрактна класа цлассНамеимена_променљивих;
апстрактна метода1 ();
јавни метод2 ()
изјаве 1… Н
Апстрактна класа може садржати атрибут или променљиве, апстрактну методу и нормалну методу или било коју од њих. Али поткласа апстрактне класе може применити само апстрактну методу апстрактне класе.
Пример-1: Апстрактни час са јавном методом
Следећи пример показује како апстрактну класу можете прогласити јавним методом и начин употребе апстрактне класе стварањем поткласе. Овде апстрактна класа садржи јавни метод са именом детаљи () која се примењује унутар апстрактне класе. Објекат поткласе је створен за приступ јавној методи апстрактне класе.
// Дефинисање апстрактне класе јавном методомапстрактна књига са предавањима
детаљи о јавним празнинама ()
Систем.напоље.принтлн ("Име књиге: Научите ПХП за 15 минута");
Систем.напоље.принтлн ("Име аутора: Јаке Вригхт");
Систем.напоље.принтлн ("Цена с попустом: 35 УСД");
// Дефинисање подкласе
цласс пхп продужава боок
// Главна класа
цласс абстрацт1
јавна статичка воид главна (Стринг [] аргс)
пхп бк = нови пхп ();
бк.детаљи ();
Излаз:
Следећи излаз ће се појавити након покретања кода. Ево, детаљи () позива се метода апстрактне класе, а текст се штампа из методе.
Пример-2: Апстрактни час са апстрактном методом и јавном методом
Следећи пример показује како се апстрактна класа може декларисати са променљивим, апстрактном методом и јавном методом. Наводи јавне методе дефинисани су унутар апстрактне класе, али тело апстрактне методе је празно што је имплементирано унутар поткласе апстрактне класе. Овде се декларишу две поткласе проширивањем апстрактне класе. Подкласа именована квадрат израчунаће и одштампати површину квадрата на основу вредности н променљива. Подкласа именована правоугаоник израчунаће и одштампати површину правоугаоника на основу вредности х и в Променљиве. Јавни метод, реадДата () позива се параметром именованим тип да би се идентификовало која променљива (и) апстрактне класе ће бити иницијализоване. Вредност тип променљива ће бити 1 за иницијализацију вредности н и 2 за иницијализацију вредности х и в.
// Дефинисање апстрактне класе апстрактном методом и јавном методомапстрактно подручје класе
јавни инт н, х, в;
резултат празнине сажетак ();
јавна празнина реадДата (инт тип)
иф (типе == 1)
н = 10;
елсе
х = 20;
в = 30;
// Дефинисање квадратне подкласе
класни квадрат се простире на површину
јавни воид резултат ()
// Израчунај површину квадрата
инт ареаВал = н * н;
Систем.напоље.принтлн ("Површина квадрата је" + ареаВал);
// Дефинисање подкласе правоугаоника
класа правоугаоник се протеже површином
јавни воид резултат ()
// Израчунај површину правоугаоника
инт ареаВал = х * в;
Систем.напоље.принтлн ("Површина правоугаоника је" + ареаВал);
// Главна класа
цласс абстрацт2
јавна статичка воид главна (Стринг [] аргс)
// Креирање објекта класе квадрат
квадрат ск = нови квадрат ();
ск.реадДата (1);
ск.резултат ();
// Стварање објекта класе правоугаоника
правоугаоник рк = нови правоугаоник ();
рк.реадДата (2);
рк.резултат ();
Излаз:
Следећи излаз ће се појавити након покретања кода. Излаз приказује површину квадрата где је вредност н је 10 и површина правоугаоника где је вредност х је 20, и вредност в је 30.
Пример-3: Апстрактна класа са конструктором
Следећи пример показује како се конструктор може декларисати и користити у апстрактној класи. Конструктор апстрактне класе ће иницијализовати вредности а и б. Апстрактна метода, маквал () је имплементиран у подкласу именовану финдМак. супер () метода користи се у конструктору поткласе за позивање конструктора апстрактне класе. Апстрактна метода маквал () сазнаће максималну вредност два броја која ће се доделити параметрима конструктора подкласе у време стварања објекта.
// Дефинисати апстрактну класу конструкторомапстрактни бројеви разреда
// декларишу променљиве
заштићени коначни инт а, б;
// конструктор апстрактне класе
јавни бројеви (инт к, инт и)
ово.а = к;
ово.б = и;
// Јавна метода
јавни сажетак воид маквал ();
// Дефинисање подкласе
класа финдМак проширује бројеве
// Конструктор подкласе
јавни финдМак (инт к, инт и)
// Позив конструктора апстрактне класе
супер (к, и);
// Применити апстрактну методу
јавна празнина маквал ()
ако (а> б)
Систем.напоље.принтлн (а + "је веће од" + б);
елсе
Систем.напоље.принтлн (б + "је веће од" + а);
// Главна класа
цласс абстрацт3
јавна статичка воид главна (Стринг [] аргс)
// Стварање објекта поткласе
финдМак фмак = нови финдМак (34,89);
// Пронађите максимум
фмак.маквал ();
Излаз:
Следећи излаз ће се појавити након покретања скрипте. Ево, 34 и 89 дате су као вредности параметара конструктора. Ове вредности се упоређују у апстрактној методи која је примењена у подкласи и исписује следећу поруку.
Закључак:
Апстрактна настава се користи како би програм био организованији и разумљивији. Неколико сродних класа може се груписати помоћу апстрактних класа. Концепт и примена апстрактне класе са различитим деловима објашњени су у овом упутству на једноставним примерима. Надам се да ће читаоци моћи да разумеју употребу апстрактне класе и правилно је примене у свом коду након читања овог водича.