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