Składnia:
klasa abstrakcyjna nazwaklasynazwy_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 publicznejksiąż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 publicznejobszar 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ą konstruktoraabstrakcyjne 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.