Klasa abstrakcyjna w Javie – z przykładami

Opublikowany: 2022-06-24

Abstrakcja danych to technika ukrywania pewnych informacji i wyświetlania użytkownikom tylko wymaganych szczegółów. Tę abstrakcję danych można osiągnąć na dwa sposoby, klasę abstrakcyjną i interfejsy.

Spis treści

Co to jest klasa abstrakcyjna w Javie?

Klasa abstrakcyjna w Javie to klasa ograniczona zamknięta lub zadeklarowana za pomocą słowa kluczowego abstract. Klasa abstrakcyjna może mieć zarówno metody abstrakcyjne, jak i nieabstrakcyjne. Nie może służyć do tworzenia obiektu. Aby uzyskać dostęp do klasy abstrakcyjnej, musi być ona odziedziczona z innej klasy.

Ucz się kursów rozwoju oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Zasady klasy abstrakcyjnej

  • Klasę abstrakcyjną można zadeklarować tylko w ramach słowa kluczowego abstract.
  • Może zawierać zarówno metody abstrakcyjne, jak i nieabstrakcyjne.
  • Może mieć również metody ostateczne.
  • Nigdy nie można go utworzyć.
  • Można również użyć konstruktorów i metod statycznych.

Przykład klasy abstrakcyjnej:

abstrakcyjna klasa B{}

Abstrakcyjna metoda w Javie

Ta metoda może być używana tylko w klasie abstrakcyjnej i nie zawiera treści. Treść zostanie dostarczona przez odziedziczoną podklasę.

Przykładem metody abstrakcyjnej jest:

abstrakcyjne void printStatus(); //brak treści i abstraktu metody

Przykład klasy abstrakcyjnej Java z metodą abstrakcyjną

W poniższym przykładzie samochód jest klasą abstrakcyjną z jedną metodą abstrakcyjną, run. Wdrożenie zapewnia klasa Audi.

Klasa abstrakcyjna Samochód{

abstrakcyjne void run();

}

klasa Audi4 rozszerza Rower{

void run(){System.out.println(„działa dobrze”);}

public static void main(String args[]){

Obj samochodu = nowy Audi4();

obj.uruchom();

}

}

Wyjście programu będzie „działać dobrze”.

W większości przypadków klasa implementacji pozostaje nieznana (abstrakcja danych), a obiekt klasy implementacji jest uzyskiwany metodą fabryki.

Metoda, która zwraca instancję klasy, nazywana jest metodą fabryczną.

Przykład klasy abstrakcyjnej Java z metodą Factory

W poniższym przykładzie, tworząc instancję klasy square, inicjowana jest metoda draw() klasy Square.

Klasa abstrakcyjna Kształt{

streszczenie void draw();

}

//W rzeczywistym scenariuszu implementację zapewniają inni, czyli nieznani użytkownikowi końcowemu

klasa Kwadrat rozszerza Kształt{

void draw(){System.out.println(„rysowanie kwadratu”);}

}

klasa Circle1 rozszerza Kształt{

void draw(){System.out.println("rysunek sześciokąta");}

}

//W rzeczywistym scenariuszu metoda jest wywoływana przez programistę lub użytkownika

klasa TestAbstrakcja1{

public static void main(String args[]){

Shape s=new Circle1();//W rzeczywistym scenariuszu obiekt jest dostarczany za pomocą metody, np. metoda getShape()

s.rysuj();

}

}

Wyjściem powyższego programu będzie „rysowanie sześciokąta”.

Popularne kursy i artykuły na temat inżynierii oprogramowania

Popularne programy
Program Executive PG w tworzeniu oprogramowania - IIIT B Program certyfikacji Blockchain - PURDUE Program Certyfikatów Cyberbezpieczeństwa - PURDUE MSC w informatyce - IIIT B
Inne popularne artykuły
Wynagrodzenie Cloud Engineer w USA 2021-22 Wynagrodzenie architekta rozwiązań AWS w USA Wynagrodzenie programisty zaplecza w USA Wynagrodzenie programisty front-end w USA
Wynagrodzenie programisty w USA Pytania do rozmowy kwalifikacyjnej Scrum Master w 2022 r. Jak rozpocząć karierę w cyberbezpieczeństwie w 2022 roku? Opcje kariery w USA dla studentów inżynierii

Kiedy należy używać klasy abstrakcyjnej w Javie?

Poniżej znajduje się kilka scenariuszy, w których można użyć klasy abstrakcyjnej:

  • Podczas próby wprowadzenia pojęcia dziedziczenia w kodzie (w celu współdzielenia kodu pomiędzy różnymi odpowiednimi klasami) za pomocą wspólnych metod klasy bazowej.
  • Gdy wymagania są specyficzne, a szczegóły implementacji niekompletne.
  • Gdy klasy używane do rozszerzania klasy abstrakcyjnej mają wiele wspólnych pól lub metod wymagających niepublicznych modyfikatorów.
  • Gdy do modyfikacji stanu obiektu używane są metody nieostateczne lub niestatyczne.

Kiedy używać interfejsu w Javie do abstrakcji?

Następujące scenariusze wymagają interfejsu Java do osiągnięcia abstrakcji:

  • Do obsługi funkcji dziedziczenia wielokrotnego
  • Aby uzyskać luźne połączenie

Deklarowanie interfejsu

Interfejs powinien być deklarowany wyłącznie za pomocą słowa kluczowego interface. Powoduje to całkowitą abstrakcję, dzięki czemu wszystkie metody dziedziczenia są deklarowane w pustej treści, a wszystkie pola stają się domyślnie publiczne, statyczne i ostateczne. Klasa implementująca interfejs powinna implementować wszystkie metody, które są zadeklarowane w interfejsie.

Przykład interfejsu Java

W poniższym przykładzie interfejs do druku ma tylko jedną metodę, której implementacja jest dostarczana w klasie A6.

interfejs do druku{

void print();

}

klasa A6 wdraża do druku{

public void print(){System.out.println("Witamy");}

public static void main(String args[]){

A6 obj = nowy A6();

obj.print();

}

}

Wynikiem programu będzie

Powitanie.

Przykład 2:

interfejs bankowy{

zmiennoprzecinkowa stopazainteresowania();

}

klasa BOI wdraża Bank{

public float rateOfInterest() {return 8.5f;}

}

klasa CUB wdraża Bank{

public float rateOfInterest() {return 9.2f;}

}

klasa TestInterfejs2{

public static void main(String[] args){

Bank b=nowy BOI();

System.out.println("ROI: "+b.rateOfInterest());

}}

Wynikiem powyższego programu będzie

Zwrot z inwestycji: 8,5

Zalety abstrakcji w Javie

  • Luźne sprzężenie: Abstrakcja w Javie pomaga w luźnym sprzężeniu, łagodząc zależne jednostki na poziomie wykładniczym.
  • Kody wielokrotnego użytku: Klasa abstrakcyjna w Javie to świetna oszczędność czasu. Metodę abstrakcyjną można wywoływać tylko wtedy, gdy jest to konieczne. Klasa abstrakcyjna pozwala uniknąć przepisywania tych samych kodów, oszczędzając w ten sposób czas.
  • Ochrona danych: Abstrakcja danych w Javie pomaga ukryć poufne szczegóły kodu przed użytkownikami. Pomaga ukryć ważne funkcje projektu i wyświetlić tylko niezbędne komponenty.
  • Szybsze rozwiązywanie problemów: Za pomocą dynamicznego rozwiązywania metod różne problemy i komplikacje można rozwiązać, stosując tylko jedną abstrakcyjną metodę.

Aby dowiedzieć się więcej o abstrakcji danych w Javie i tworzeniu oprogramowania, zapisz się na Executive Post Graduate Program in Software Development oferowany przez IIIT Bangalore we współpracy z upGrad.

Executive Postgraduate Program w Software Development to 13-miesięczny program online. Program nauczania jest specjalnie zaprojektowany dla pracujących profesjonalistów, aby mogli skupić się na nauce bez rezygnacji z pracy. Program obejmuje projekty branżowe i studia przypadków. Ponadto program obejmuje ponad 10 sesji na żywo prowadzonych przez ekspertów branżowych, aby pomóc kandydatom być na bieżąco z aktualnymi trendami w branży.

Czy możemy mieć klasę abstrakcyjną bez metody abstrakcyjnej?

TAk. Możliwe jest posiadanie klasy abstrakcyjnej bez żadnej metody abstrakcyjnej, ponieważ obie są niezależnymi technikami. Zadeklarowanie klasy abstrakcyjnej implikuje, że nie można jej utworzyć samodzielnie i można to zrobić tylko za pomocą podklasy. Zdefiniowanie metody abstrakcyjnej oznacza, że ​​metoda jest zdefiniowana lub zawarta w podklasie.

Dlaczego abstrakcja danych jest niezbędna?

TAk. Możliwe jest posiadanie klasy abstrakcyjnej bez żadnej metody abstrakcyjnej, ponieważ obie są niezależnymi technikami. Zadeklarowanie klasy abstrakcyjnej oznacza, że ​​nie można jej utworzyć samodzielnie i można to zrobić tylko za pomocą podklasy. Zdefiniowanie metody abstrakcyjnej oznacza, że ​​metoda jest zdefiniowana lub zawarta w podklasie.

Czym różni się abstrakcja danych od abstrakcji kontroli?

Abstrakcja danych to proces tworzenia złożonych i skomplikowanych typów danych, ale podkreślający lub ujawniający tylko istotne szczegóły. Abstrakcja sterowania to proces, który zajmuje się programową częścią abstrakcji. Jest to proces, w którym program ulega uszkodzeniu lub uproszczeniu, a niepożądane szczegóły wykonania programu są ukrywane. Abstrakcja sterowania służy przede wszystkim do generowania nowych funkcji i łączenia różnych instrukcji sterujących w jedną jednostkę.