Апстракција у Јави | Апстрактна класа и метода са примером

Шта је апстракција у Јави?

Апстракција у ЈАВИ приказује само битне атрибуте и сакрива од корисника непотребне детаље о објекту. У Јави се апстракција постиже употребом класе Апстракт, Апстрактних метода и Интерфејса. Апстракција помаже у смањењу сложености и напора програмирања.

У овом водичу ћете научити-

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

РАЗРЕДНИ РАЗРЕД је врста класе у Јави, која декларише једну или више апстрактних метода. Ове класе могу имати апстрактне методе, као и конкретне методе. Нормална класа не може имати апстрактне методе. Апстрактна класа је класа која садржи најмање једну апстрактну методу. Концепт можемо разумети према пример облика у јави .

Размотрите следећу хијерархију класа која се састоји од класе Схапе коју наслеђују три класе Правокутник, Круг и Троугао. Класа Схапе је створена за уштеду на заједничким атрибутима и методама које деле три класе Правокутник, Круг и Троугао. ЦалцуАреаАреа () је један такав метод који деле све три подређене класе и присутан је у класи Схапе.

Пример апстракције облика

Сада претпоставимо да пишете код за креирање објеката за класе приказане горе. Погледајмо како су ови објекти ће изгледати у практичном свету.

Објекат правоугаоника класе ће дати правоугаоник, облик који смо тако често приметили у свакодневном животу.

Објекат класног троугла даће троугао, опет уобичајен свакодневни облик.

Али како би објект класе Облик изгледао у практичном свету ??

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

Синтакса:

 abstract class Shape{ // code } 

Могуће је да класу Схапе НЕ означите као Абстрацт, а затим је направите. Али такав објекат неће имати користи у вашем коду и отвориће простор за могуће грешке. Због тога ово није пожељно.

Шта су апстрактне методе?

МЕТОДА САЖЕТКА у Јави је метода која има само дефиницију методе, али не садржи имплементацију. Метода без тела позната је као апстрактна метода. Мора се декларисати у апстрактној класи. Апстрактна метода никада неће бити коначна јер апстрактна класа мора имплементирати све апстрактне методе.

Као што сви знамо, формула за израчунавање површине за правоугаоник, круг и троугао је другачија. Наследне класе ће морати да замене метод ЦалцуАреа (). Нема смисла дефинисати га у класи Схапе, али морамо бити сигурни да све наслеђујуће класе имају метод.

Такве методе се могу означити апстрактан.

Синтакса:

abstract public void calculateArea();

За ан апстрактна метода, није потребна имплементација. Дефинисан је само потпис методе.

Пример кода апстракције

 abstract class Shape{ abstract void calculateArea(); } public class on2vhf extends Shape{ void calculateArea(){System.out.println('Area of Shape');} public static void main(String args[]){ Shape obj = new on2vhf(); obj.run(); } } 

Апстрактна класа у Јави: важне тачке

  • Апстрактна класа може такође имају конкретне (потпуне) методе.
  • У сврху дизајна, класа се може прогласити апстрактном чак и ако не садржи апстрактне методе
  • Референца апстрактне класе може указати на објекте њених подкласа чиме се постиже полиморфизам током извођења Ек: Схапе обј = нев Рецтангле ();
  • Класа мора бити обавезно означена као апстрактна, ако има једну или више апстрактних метода.

Завршна кључна реч у Јави

Коначни модификатор примењује се на класе, методе и променљиве. Значење коначног варира од контекста до контекста, али суштинска идеја је иста.

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

Пример :- За учење апстрактних и коначних кључних речи

Корак 1) Копирајте следећи код у уређивач. | _+_ |

Корак 2) Сачувајте, компајлирајте и покрените код.

Корак 3) Грешка =? Апстрактна метода није имплементирана у класи Рецтангле. Да бисте решили проблем, уклоните коментар #15.

Корак 4) Ред за коментар # 13. Сачувај и компајлирај код.

Корак 5) Грешка =? променљива б је коначна

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

  • Апстрактне методе немају имплементацију; има само потпис методе
  • Ако класа користи апстрактну методу, мора се прогласити апстрактном. Супротно не може бити тачно. То значи да апстрактна класа не мора нужно имати апстрактну методу.
  • Ако обична класа проширује апстрактну класу, онда та класа мора имплементирати све апстрактне методе апстрактног родитеља