Сажетак Класа вс интерфејс
Апстрактна класа и интерфејс су две објектно оријентисане конструкције које се налазе у многим објектно програмским језицима као што је Јава. Апстрактна класа може се сматрати апстрактном верзијом регуларне (конкретне) класе, док се интерфејс може сматрати начином реализације уговора. Сажетак класе је класа која се не може иницијализирати, али се може проширити. Интерфејс је врста коју морају да примене друге класе. У Јави се класе Сажетака декларишу помоћу кључне речи Сажетак, док се за дефинисање интерфејса користи кључна реч интерфејса.
Шта је апстрактна класа?
Обично се класе апстракта, познате и као апстрактне основне класе (АБЦ), не могу инстанцирати (инстанца те класе се не може креирати). Дакле, апстрактне класе имају смисла имати само ако програмски језик подржава наследство (способност креирања поткласа продужењем класе). Апстрактне часове обично представљају апстрактни концепт или ентитет с делимичном или никаквом имплементацијом. Због тога, сажеци наставе делују као матичне класе из којих потичу дечије класе тако да дечија класа дели непотпуне карактеристике родитељске класе и може се додати функционалност да их доврши.
Сажеци могу садржавати апстрактне методе. Подкласе које проширују апстрактну класу могу имплементирати ове (наслеђене) Абстрактне методе. Ако дечија класа примењује све такве апстрактне методе, то је конкретан разред. Али ако то не успе, дечија класа такође постаје апстрактна класа. Све то значи да, када програмер номинира класу као Сажетак, она каже да ће класа бити непотпуна и да ће имати елементе које је потребно попунити наследним подкласама. Ово је леп начин за склапање уговора између два програмера, који поједностављује задатке у развоју софтвера. Програмер, који пише код да га наследи, мора тачно да следи дефиниције метода (али наравно може имати и сопствену имплементацију).
Шта је интерфејс?
Интерфејс је апстрактни тип који се користи за спецификацију уговора који би требало применити класама, а које имплементирају тај интерфејс. Кључна реч интерфејса користи се за дефинисање интерфејса, а кључна реч Имплементс користи се за имплементацију интерфејса по класама (у програмском језику Јава). Обично интерфејс садржи само потписе метода и константне декларације. Свако сучеље које имплементира одређено сучеље треба имплементирати све методе дефиниране у интерфејсу или их треба прогласити апстрактном класом. У Јави се тип референце објекта може дефинирати као тип интерфејса. Али тај објект мора бити или нулл или треба садржавати објект класе који имплементира тај одређени интерфејс. Помоћу кључне речи Имплементс у Јави можете имплементирати више интерфејса у једну класу.
Која је разлика између класе апстракције и сучеља?
Апстрактне часове обично представљају апстрактни концепт или ентитет са делимичном или никаквом имплементацијом. Са друге стране, интерфејс је апстрактног типа који се користи за спецификацију уговора који треба да реализује класа. Апстрактни часови требају бити наслијеђени (или проширени), док интерфејсе треба имплементирати. Апстрактне часове могу садржавати апстрактне методе, док интерфејс треба садржавати само апстрактне методе. Апстрактне класе могу садржавати било које варијабле, али интерфејси могу дефинисати само константе. Класа не може наслиједити више од једне апстрактне класе, али може имплементирати више интерфејса. Интерфејс не може имплементирати други интерфејс. Међутим, интерфејс може да продужи класу.