Шта је апстрактна класа на Јави?

  • Апстрактни часови су као и други нормални часови у Јави. Главна разлика између апстрактне класе и нормалне класе је у стварању апстрактне класе која нам треба да употребимо кључну реч "АБСТАРЦТ". То је одвајање имплементације класе.
  • Користили су за дефинисање врло уобичајених карактеристика његових подразреда. Таква врста класе која се сматра апстрактном.
  • Најважније је да не можемо створити објект апстрактне класе.
  • Сажеци предавања могу садржавати апстрактне и неастрактне методе. Они не могу садржати тело апстрактне методе, коју може пружити само поткласа. Ако подразред не пружа имплементацију апстрактне методе, морамо то изричито извести САЖЕТАК.
  • Другим речима, ако класа садржи апстрактну методу, онда се мора дефинисати као АБСТАРЦТ.
  • Кориштењем апстрактних класа можемо груписати неколико класа јава заједно то такође оптимизира код и код чини читљивијим и смањује сувишност. Такође нуди образац за будуће часове.

Синтакса апстрактне класе на Јави

Како апстрактна настава ради на Јави?

  • Апстрактна класа има апстрактну методу и неастрактну методу, тј. Апстрактну методу без тела и могу имати и методе са имплементацијом.
  • Апстрактна класа користи се за пружање најчешће карактеристике која је специфична за различите класе. Подкласе могу пружити различиту имплементацију тих апстрактних метода у складу са њиховим потребама или захтевима.
  • Објект апстрактне класе не можемо створити помоћу оператора 'нев', али још увијек можемо дефинирати његов конструктор који се може позвати само у конструктору његове поткласе. Конструктор подразреда може приступити конструктору надкласе како би иницијализирао своју променљиву која би се можда користила у подразреду за даљи захтев.

Примери апстрактне класе на Јави

Хуман.јава

package com.cont.article;
public abstract class Human
(
public abstract void whatTheylike();
public void doTheysleep()
(
System. out .println("Yes every human require sleep.");
)
)

Хуман1.јава

package com.cont.article;
public class Human1 extends Human
(
@Override
public void whatTheylike()
(
System. out .println("we like to have icecream.");
)
)

Хуман2.јава

package com.cont.article;
public class Human2 extends Human
(
@Override
public void whatTheylike()
(
System. out .println("we like to have coffee.");
)
)

ТестХуман.јава

package com.cont.article;
public class TestHuman
(
public static void main(String() args)
(
Human human1 = new Human1();
human1.whatTheylike();
Human human2 = new Human2();
human2.whatTheylike();
human1.doTheysleep();
human2.doTheysleep();
)
)

Излаз:

У горњем примеру имамо ЉУДИ као апстрактну класу која дефинише заједничке потребе, лајкове и несклоности човека. Постоје различите врсте људи са различитим симпатијама и несвиђањем. Тако сваки човек може пружити специфичну примену онога што воли. То ће бити специфично само за њих.

Главна предност апстрактне класе је да имамо специфичну примену метода у складу са захтевом који такође води смањењу сувишности, повећава читљивост кода, скрива имплементацију метода и на тај начин омогућава делимичну апстракцију.

Можемо имати још један пример да схватимо када треба да користимо апстрактне часове.

  • Требали бисмо користити апстрактну класу када желимо да делимо заједничку функционалност између различитих класа са одређеном имплементацијом.
  • У апстрактним класама поља не би требало да буду статична и коначна, а можемо и да имамо конкретне методе које се дефинишу као приватне, јавне и заштићене.

Рецимо да имамо један разред за животиње. На земљи постоје разне животиње које се у неком или већем смислу разликују једна од друге. Садржиће све заједничке особине свих.

Сада, ова класа животиња не може имати методе које су специфичне за сваку животињу. Дакле, концептом класе Абстрацт, ову функцију можемо имплементирати без сувишног кода.

Све животиње имају различиту врсту звука, навике итд. На пример, пси, мачке, слонови и грицкалице, све имају различит звук. Дакле, за то можемо у родитељској класи имати генеричку методу путем које све остале подкласе или подређене класе могу пружити своју специфичну имплементацију.

У родитељској класи тј. Животињи имамо једну општу апстрактну методу која се зове њихов звук (). Стога свака дечја класа треба да превлада ову методу и обезбеди сопствену специфичну примену.

Сажетак класе и сучеља?

  • Сажетак класе и сучеља користе се за постизање апстракције у јави. Апстрактна класа пружа делимичну апстракцију док интерфејс пружа 100% или потпуну апстракцију.
  • Подразумеване променљиве у интерфејсу су коначне. Али апстрактна класа такође садржи не-коначну променљиву. Слично апстрактна класа такође може имати статичку, нестатичку променљиву. Али интерфејс ће садржати само коначну и статичку променљиву.
  • Променљиве класе апстрактних класа могу бити попут приватних, јавних, заштићених, али у случају интерфејса су по дефаулту јавне.
  • Апстрактна класа може проширити другу Јава класу и имплементирати више интерфејса, али један интерфејс може проширити само други интерфејс. Апстрактна класа може пружити имплементацију интерфејса, али интерфејс не може то учинити.
  • Ми користимо имплементације и проширивање кључне ријечи за имплементацију и проширење сучеља и класа.
  • Методом можемо модификовати или приступати нестатичким и не-крајњим варијаблама апстрактне класе.

Закључак

  • Апстрактни разред који се користи за делимичну апстракцију. Апстрактна класа се не може инстанцирати коришћењем кључне речи НОВО.
  • Апстрактна метода нема тела и увек се завршава тачком са зарезом (;).
  • Сажетак предавања садржи апстрактне и не-апстрактне методе.
  • Подкласа апстрактног суперкласа, треба да обезбеди имплементацију свих апстрактних метода ако не пружа, онда се мора декларирати као апстрактна класа.
  • Подкласа може бити апстрактна чак и ако је суперкласа конкретна.
  • Не-апстрактна класа не може садржавати апстрактне методе. Такође, апстрактна метода је нестатична.
  • Стога можемо рећи да апстрактне часове садрже и апстрактне и конкретне методе, тако да не могу пружити 100% апстракцију. То је поступак скривања сложене логике од крајњег корисника и показује им само услуге. Подкласа може бити апстрактна чак и ако је њен суперразред конкретан, а може се користити и као тип података.
  • Апстрактна класа може имати статичка поља и статичке методе. Можете користити те статичке чланове са референцом класе.

Препоручени чланци

Ово је водич за апстрактну класу на Јави. Овде смо расправљали о синтакси и примерима апстрактне класе у Јави, заједно са апстрактном класом и сучељем. Такође можете погледати следеће чланке да бисте сазнали више -

  1. Јава интерфејс вс апстрактна класа
  2. БокЛаиоут у Јави
  3. Шта је Јава СЕ?
  4. Шта је наслеђивање Јава?
  5. Како функционише апстрактна класа на ПХП-у?
  6. Сажетак класе Ц ++
  7. Водич за статичку методу у ПХП-у
  8. Комплетан преглед статичке методе ЈаваСцрипт-а

Категорија: