Java

Clasa abstractă Java

Clasa abstractă Java
Conceptul de abstractizare este de a evidenția sarcina obiectului în loc de a evidenția „modul în care obiectul îndeplinește sarcina”. Acest tip de concept poate fi implementat folosind două moduri în Java. Acestea sunt clasa abstractă și interfața. Clasa Abstract conține cuvântul cheie abstract. Această clasă nu poate fi inițiată ca alte clase normale, dar o subclasă poate fi derivată prin moștenirea clasei abstracte. Caracteristicile clasei abstracte pot fi accesate prin crearea obiectului subclasei. O clasă abstractă poate conține și constructorul care poate fi accesat prin crearea obiectului clasei de subclasă. Cum puteți utiliza o clasă abstractă în Java este prezentat în acest tutorial.

Sintaxă:

clasa abstractă className
nume_variabile;
metoda abstractă1 ();
metoda publica2 ()
declarațiile 1 ... N

O clasă abstractă poate conține atribute sau variabile, metodă abstractă și metodă normală sau oricare dintre ele. Dar subclasa clasei abstracte poate implementa doar metoda abstractă a clasei abstracte.

Exemplu-1: Clasa abstractă cu o metodă publică

Următorul exemplu arată cum puteți declara o clasă abstractă cu o metodă publică și modul de utilizare a unei clase abstracte prin crearea unei subclase. Aici, clasa abstractă conține o metodă publică numită Detalii() care este implementat în interiorul clasei abstracte. Obiectul subclasei este creat pentru a accesa metoda publică a clasei abstracte.

// Definiți clasa abstractă cu metoda publică
carte de clasă abstractă
detalii de vid public ()
Sistem.afară.println („Nume carte: Aflați PHP în 15 minute”);
Sistem.afară.println („Numele autorului: Jake Wright”);
Sistem.afară.println („Preț de reducere: 35 USD”);


// Definiți subclasa
clasa php extinde cartea

// Clasa principală
clasa abstract1
public static void main (String [] args)
php bk = php nou ();
bk.Detalii();

Ieșire:

Următoarea ieșire va apărea după executarea codului. Aici Detalii() se numește metoda clasei abstracte, iar textul este tipărit din metodă.

Exemplul-2: Clasa abstractă cu metoda abstractă și metoda publică

Următorul exemplu arată cum o clasă abstractă poate fi declarată cu variabile, o metodă abstractă și o metodă publică. Afirmațiile metodei publice sunt definite în interiorul clasei abstracte, dar corpul metodei abstracte este gol, care este implementat în interiorul subclasei clasei abstracte. Aici, două subclase sunt declarate prin extinderea clasei abstracte. Subclasa numită pătrat va calcula și va imprima aria unui pătrat pe baza valorii lui n variabil. Subclasa numită dreptunghi va calcula și va imprima aria dreptunghiului pe baza valorii lui h și w variabile. Metoda publică, readData () este apelat de un parametru numit tip pentru a identifica ce variabilă (variabile) din clasa abstractă vor fi inițializate. Valoarea tip variabila va fi 1 pentru inițializarea valorii n și 2 pentru inițializarea valorii h și w.

// Definiți o clasă abstractă cu o metodă abstractă și o metodă publică
zona de clasă abstractă
public int n, h, w;
rezultat nul abstract ();
public void readData (tip int)
if (tip == 1)
n = 10;

altceva
h = 20;
w = 30;



// Definiți subclasa pătrată
clasa pătrat extinde suprafața
public nul rezultat ()
// Calculați aria pătratului
int areaVal = n * n;
Sistem.afară.println ("Zona pătratului este" + areaVal);


// Definiți subclasa dreptunghiulară
clasa dreptunghi extinde aria
public nul rezultat ()
// Calculați aria dreptunghiului
int areaVal = h * w;
Sistem.afară.println ("Zona dreptunghiului este" + areaVal);


// Clasa principală
clasa abstract2
public static void main (String [] args)
// Creați obiectul clasei pătrate
pătrat pătrat = pătrat nou ();
mp.readData (1);
mp.rezultat();
// Creați obiectul clasei dreptunghi
dreptunghi rq = dreptunghi nou ();
rq.readData (2);
rq.rezultat();

Ieșire:

Următoarea ieșire va apărea după executarea codului. Ieșirea arată aria unui pătrat unde valoarea lui n este 10 și aria unui dreptunghi unde valoarea lui h este 20, și valoarea w este 30.

Exemplul-3: Clasa abstractă cu constructorul

Următorul exemplu arată cum constructorul poate fi declarat și utilizat într-o clasă abstractă. Constructorul clasei abstracte va inițializa valorile lui A și b. Metoda abstractă, maxval () este implementat în subclasa denumită findMax. super() metoda este utilizată în constructorul subclasei pentru a apela constructorul unei clase abstracte. Metoda abstractă maxval () va afla valoarea maximă a două numere care vor fi date parametrilor constructorului subclasei în momentul creării obiectului.

// Definiți o clasă abstractă cu un constructor
numere de clasă abstracte
// declarați variabile
int final protejat a, b;
// constructor de clase abstracte
numere publice (int x, int y)
acest.a = x;
acest.b = y;

// Metoda publică
public abstract void maxval ();

// Definiți subclasa
clasa findMax extinde numerele
// Constructor de subclasă
public findMax (int x, int y)
// Apelați constructorul de clasă abstractă
super (x, y);

// Implementați metoda abstractă
public nul maxval ()
dacă (a> b)
Sistem.afară.println (a + "este mai mare decât" + b);

altceva
Sistem.afară.println (b + "este mai mare decât" + a);



// Clasa principală
clasa abstract3
public static void main (String [] args)
// Creați obiectul subclasei
findMax fmax = new findMax (34,89);
// Găsiți maximul
fmax.maxval ();

Ieșire:

Următoarea ieșire va apărea după rularea scriptului. Aici, 34 și 89 sunt date ca valori ale parametrilor constructorului. Aceste valori sunt comparate în metoda abstractă care este implementată în subclasă și se tipărește următorul mesaj.

Concluzie:

O clasă abstractă este utilizată pentru a face programul mai organizat și mai ușor de înțeles. Mai multe clase conexe pot fi grupate utilizând clase abstracte. Conceptul și implementarea clasei abstracte cu diferite părți sunt explicate în acest tutorial folosind exemple simple. Sper că cititorii vor putea să înțeleagă utilizarea clasei abstracte și să o aplice corect în codul lor după ce au citit acest tutorial.

Cum să capturați și să transmiteți în flux sesiunea de jocuri pe Linux
În trecut, jocurile erau considerate doar un hobby, dar cu timpul industria jocurilor a cunoscut o creștere imensă în ceea ce privește tehnologia și n...
Cele mai bune jocuri pentru a juca cu urmărirea manuală
Oculus Quest a introdus recent marea idee de urmărire manuală fără controlere. Cu un număr din ce în ce mai mare de jocuri și activități care execută ...
Cum se afișează suprapunerea OSD în aplicații și jocuri Linux pe ecran complet
Jucarea jocurilor pe ecran complet sau utilizarea aplicațiilor în modul ecran complet fără distragere vă poate elimina din informațiile relevante ale ...