Klasa abstrakcyjna Java

Klasa abstrakcyjna Java
Pojęcie abstrakcji polega na podkreśleniu zadania obiektu zamiast podkreślenia: „Jak obiekt wykonuje zadanie”. Ten rodzaj koncepcji można wdrożyć przy użyciu dwóch sposobów w Javie. To są klasa abstrakcyjna 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ą. Do cech 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 korzystać z klasy abstrakcyjnej w Javie.

Składnia:

Streszczenie klasy klas
zmienne_names;
Streszczenie Method1 ();
public Method2 ()
stwierdzenia 1… n

Klasa abstrakcyjna może zawierać atrybuty lub zmienne, metodę abstrakcyjną i normalną metodę lub ktokolwiek z nich. Ale podklasa klasy abstrakcyjnej może wdrożyć jedynie abstrakcyjną metodę klasy abstrakcyjnej.

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

Poniższy przykład pokazuje, w jaki sposób możesz zadeklarować klasę abstrakcyjną metodą publiczną i sposób korzystania z klasy abstrakcyjnej poprzez tworzenie podklasy. Tutaj klasa abstrakcyjna zawiera metodę publiczną o nazwie Detale() to jest zaimplementowane w klasie abstrakcyjnej. Obiekt podklasy jest tworzony w celu uzyskania dostępu do publicznej metody klasy abstrakcyjnej.

// Zdefiniuj klasę abstrakcyjną metodą publiczną
Streszczenie Książka klasowa
publiczne detale void ()
System.na zewnątrz.println („Nazwa książki: naucz się PHP w 15 minut”);
System.na zewnątrz.println („Nazwa autora: Jake Wright”);
System.na zewnątrz.println („Cena rabatowa: 35 USD”);


// Zdefiniuj podklasę
Klasa PHP rozszerza książkę

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

Wyjście:

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

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

Poniższy przykład pokazuje, w jaki sposób klasę abstrakcyjną można zadeklarować zmiennymi, metodą abstrakcyjną i metodą publiczną. Oświadczenia metody publicznej są zdefiniowane w klasie abstrakcyjnej, ale ciało metody abstrakcyjnej jest pusta, która jest zaimplementowana w podklasie klasy abstrakcyjnej. Tutaj zadeklarowane są dwie podklasy, rozszerzając klasę abstrakcyjną. Podklasa wymieniona kwadrat obliczy i wydrukuje obszar kwadratu na podstawie wartości N zmienny. Podklasa wymieniona prostokąt obliczy i wydrukuje obszar prostokąta na podstawie wartości H I w zmienne. Metoda publiczna, readdata () jest nazywany parametrem wymienionym typ w celu ustalenia, które zmienne klasy abstrakcyjnej zostaną zainicjowane. Wartość typ zmienna będzie 1 do inicjowania wartości N i 2 za inicjowanie wartości H I w.

// Zdefiniuj klasę abstrakcyjną metodą abstrakcyjną i metodą publiczną
Obszar klas abstrakcyjnych
public int n, h, w;
Streszczenie void Result ();
public void readdata (int type)
if (typ == 1)
n = 10;

w przeciwnym razie
H = 20;
w = 30;



// Zdefiniuj kwadratową podklasę
Class Square rozszerza obszar
public void result ()
// Oblicz obszar kwadratu
int areaval = n*n;
System.na zewnątrz.println („Obszar kwadratu to” + AreaVal);


// Zdefiniuj podklasę prostokąta
Prostokąt klas rozciąga obszar
public void result ()
// Oblicz obszar prostokąta
int areaVal = h*w;
System.na zewnątrz.println („Obszar prostokąta to” + AreaVal);


// klasa główna
klasa Streszczenie2
public static void main (string [] args)
// Utwórz obiekt klasy kwadratowej
Square sq = new Square ();
Sq.ReadData (1);
Sq.wynik();
// Utwórz obiekt klasy prostokąta
Rectangle rq = new Rectangle ();
RQ.ReadData (2);
RQ.wynik();

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu kodu. Wyjście pokazuje obszar kwadratu, w którym wartość N Jest 10 i obszar 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, w jaki sposób konstruktor można zadeklarować i używać w klasie abstrakcyjnej. Konstruktor klasy abstrakcyjnej zainicjuje wartości A I B. Metoda abstrakcyjna, Maxval () jest zaimplementowany w podklasie wymienionej Findmax. Super() Metoda jest stosowana w konstruktorze podklasy, aby wywołać konstruktor klasy abstrakcyjnej. Metoda abstrakcyjna Maxval () znajdzie maksymalną wartość dwóch liczb, które zostaną przekazane parametrom konstruktora podklasy w momencie tworzenia obiektów.

// Zdefiniuj klasę abstrakcyjną z konstruktorem
abstrakcyjne liczby klas
// Deklaruj zmienne
chroniony końcowy int a, b;
// Konstruktor klas abstrakcyjnych
numery publiczne (int x, int y)
Ten.a = x;
Ten.B = y;

// Metoda publiczna
Streszczenie publiczne void maxval ();

// Zdefiniuj podklasę
klasa FindMax rozszerza liczby
// Konstruktor podklasy
public FindMax (int x, int y)
// Zadzwoń do konstruktora klas abstrakcyjnych
super (x, y);

// Wdrożenie metody abstrakcyjnej
public void maxval ()
if (a> b)
System.na zewnątrz.println (a + "jest większy niż" + b);

w przeciwnym razie
System.na zewnątrz.println (b + "jest większy niż" + a);



// klasa główna
klasa Streszczenie3
public static void main (string [] args)
// Utwórz obiekt podklasy
FindMax fmax = new FindMax (34,89);
// Znajdź maksimum
fmax.maxval ();

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu. Tutaj, 34 I 89 są podane jako wartości parametrów konstruktora. Wartości te są porównywane w metodzie abstrakcyjnej, która jest zaimplementowana w podklasie i wydrukowana następująca wiadomość.

Wniosek:

Klasa abstrakcyjna jest używana do uczynienia programu bardziej zorganizowanym i zrozumiałym. Kilka powiązanych klas można pogrupować za pomocą klas abstrakcyjnych. Koncepcja i wdrożenie klasy abstrakcyjnej z różnymi częściami są wyjaśnione w tym samouczku za pomocą prostych przykładów. Mam nadzieję, że czytelnicy będą w stanie zrozumieć użycie klasy abstrakcyjnej i odpowiednio zastosować ją do kodu po przeczytaniu tego samouczka.