Jawa

Klasa abstrakcyjna Java

Klasa abstrakcyjna Java
Pojęcie abstrakcji polega na podkreśleniu zadania obiektu zamiast podkreślania „jak obiekt wykonuje zadanie”. Ten rodzaj koncepcji można zaimplementować na dwa sposoby w Javie. To są klasy abstrakcyjne i interfejs. Klasa abstrakcyjna zawiera słowo kluczowe abstrakcyjny. Ta klasa nie może być inicjowana jak inne normalne klasy, ale podklasę można wyprowadzić dziedzicząc klasę abstrakcyjną. Dostęp do funkcji klasy abstrakcyjnej można uzyskać, tworząc obiekt podklasy. Klasa abstrakcyjna może również zawierać konstruktor, do którego można uzyskać dostęp, tworząc obiekt klasy podklasy. W tym samouczku pokazano, jak używać klasy abstrakcyjnej w Javie.

Składnia:

klasa abstrakcyjna nazwaklasy
nazwy_zmiennych;
abstrakcyjna metoda1();
metoda publiczna2()
stwierdzenia 1… N

Klasa abstrakcyjna może zawierać atrybut lub zmienne, metodę abstrakcyjną, metodę normalną lub dowolną z nich. Ale podklasa klasy abstrakcyjnej może implementować tylko metodę abstrakcyjną klasy abstrakcyjnej.

Przykład-1: Klasa abstrakcyjna z metodą publiczną

Poniższy przykład pokazuje, w jaki sposób można zadeklarować klasę abstrakcyjną za pomocą metody publicznej oraz sposób użycia klasy abstrakcyjnej poprzez utworzenie podklasy. Tutaj klasa abstrakcyjna zawiera metodę publiczną o nazwie Detale() która jest zaimplementowana wewnątrz klasy abstrakcyjnej. Obiekt podklasy jest tworzony w celu uzyskania dostępu do publicznej metody klasy abstrakcyjnej.

//Zdefiniuj klasę abstrakcyjną za pomocą metody publicznej
książka abstrakcyjna
publiczne nieważne szczegóły ()
System.na zewnątrz.println("Nazwa książki: Naucz się PHP w 15 minut");
System.na zewnątrz.println("Nazwisko autora: Jake Wright");
System.na zewnątrz.println("Cena rabatowa: 35 USD");


//Zdefiniuj podklasę
klasa php rozszerza książkę

//Klasa główna
klasa abstrakt1
public static void main(String[] args)
php bk = nowy php();
bk.Detale();

Wynik:

Następujące dane wyjściowe pojawią się po uruchomieniu kodu. Tutaj Detale() wywoływana jest metoda klasy abstrakcyjnej, a tekst jest wypisywany z metody.

Przykład-2: Klasa abstrakcyjna z metodą abstrakcyjną i metodą publiczną

Poniższy przykład pokazuje, jak można zadeklarować klasę abstrakcyjną za pomocą zmiennych, metody abstrakcyjnej i metody publicznej. Instrukcje metody publicznej są zdefiniowane wewnątrz klasy abstrakcyjnej, ale treść metody abstrakcyjnej jest pusta i jest zaimplementowana wewnątrz podklasy klasy abstrakcyjnej. Tutaj dwie podklasy są deklarowane przez rozszerzenie klasy abstrakcyjnej. Podklasa o nazwie kwadrat obliczy i wydrukuje pole kwadratu na podstawie wartości nie zmienna. Podklasa o nazwie prostokąt obliczy i wydrukuje pole prostokąta na podstawie wartości h i w zmienne. Metoda publiczna, odczytajDane() jest wywoływana przez parametr o nazwie rodzaj aby określić, która zmienna (zmienne) klasy abstrakcyjnej zostanie zainicjowana. Wartość rodzaj zmienna będzie 1 dla inicjalizacji wartości nie i 2 do inicjalizacji wartości h i w.

//Zdefiniuj klasę abstrakcyjną za pomocą metody abstrakcyjnej i metody publicznej
obszar klasy abstrakcyjnej
publiczne int n, h, w;
abstrakcyjny wynik nieważny();
public void readData(typ int)
jeśli (typ == 1)
n = 10;

jeszcze
h = 20;
w = 30;



//Zdefiniuj podklasę kwadratową
klasa kwadrat rozszerza obszar
publiczny nieważny wynik ()
//Oblicz pole kwadratu
int obszarVal = n*n;
System.na zewnątrz.println("Powierzchnia kwadratu to " + areaVal);


//Zdefiniuj podklasę prostokąta
prostokąt klasy rozszerza obszar
publiczny nieważny wynik ()
//Oblicz powierzchnię prostokąta
int areaVal = h*w;
System.na zewnątrz.println("Obszar prostokąta to " + areaVal);


//Klasa główna
klasa abstrakt2
public static void main(String[] args)
//Utwórz obiekt klasy kwadrat
kwadrat kwadrat = nowy kwadrat();
sq.odczytajDane(1);
sq.wynik();
//Utwórz obiekt klasy prostokąt
prostokąt rq = nowy prostokąt();
rq.odczytajDane(2);
rq.wynik();

Wynik:

Następujące dane wyjściowe pojawią się po uruchomieniu kodu. Wynik pokazuje pole kwadratu, w którym wartość nie jest 10 oraz pole prostokąta, w którym wartość h jest 20, i wartość w jest 30.

Przykład-3: Klasa abstrakcyjna z konstruktorem

Poniższy przykład pokazuje, jak można zadeklarować i używać konstruktora w klasie abstrakcyjnej. Konstruktor klasy abstrakcyjnej zainicjuje wartości za i b. Metoda abstrakcyjna, maxwartość() jest zaimplementowany w podklasie nazwanej znajdźMax. Wspaniały() Metoda jest używana w konstruktorze podklasy do wywołania konstruktora klasy abstrakcyjnej. Metoda abstrakcyjna maxwartość() pozna maksymalną wartość dwóch liczb, które zostaną podane parametrom konstruktora podklasy w momencie tworzenia obiektu.

//Zdefiniuj klasę abstrakcyjną za pomocą konstruktora
abstrakcyjne numery klas
//deklaruj zmienne
zabezpieczony końcowy int a, b;
//Konstruktor klasy abstrakcyjnej
numery publiczne(int x,int y)
to.a = x;
to.b = y;

//Metoda publiczna
public abstract void maxval();

//Zdefiniuj podklasę
klasa findMax rozszerza liczby
//Konstruktor podklasy
public findMax(int ​​x,int y)
//Wywołaj konstruktora klasy abstrakcyjnej
super(x,y);

//Zaimplementuj metodę abstrakcyjną
public void maxval()
jeśli(a > b)
System.na zewnątrz.println(a + " jest większe niż " + b);

jeszcze
System.na zewnątrz.println(b + " jest większe niż " + a);



//Klasa główna
klasa abstrakt3
public static void main(String[] args)
//Utwórz obiekt podklasy
findMax fmax = nowe findMax(34,89);
//Znajdź maksimum
fmax.maxwartość();

Wynik:

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu. Tutaj, 34 i 89 podane są jako wartości parametrów konstruktora. Wartości te są porównywane w abstrakcyjnej metodzie zaimplementowanej w podklasie i wyświetlają następujący komunikat.

Wniosek:

Klasa abstrakcyjna służy do tego, aby program był bardziej zorganizowany i zrozumiały. Kilka powiązanych klas można pogrupować za pomocą klas abstrakcyjnych. Koncepcja i implementacja klasy abstrakcyjnej z różnymi częściami są wyjaśnione w tym samouczku za pomocą prostych przykładów. Mam nadzieję, że po przeczytaniu tego samouczka czytelnicy będą w stanie zrozumieć użycie klasy abstrakcyjnej i poprawnie zastosować ją w swoim kodzie.

Gry Jak stworzyć grę na Linuksie
Jak stworzyć grę na Linuksie
Dziesięć lat temu niewielu użytkowników Linuksa przewidywało, że ich ulubiony system operacyjny pewnego dnia stanie się popularną platformą do gier dl...
Gry Open Source Ports of Commercial Game Engines
Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...
Gry Najlepsze gry wiersza poleceń dla systemu Linux
Najlepsze gry wiersza poleceń dla systemu Linux
Wiersz poleceń jest nie tylko twoim największym sprzymierzeńcem podczas korzystania z Linuksa - może być również źródłem rozrywki, ponieważ możesz go ...