Abstracte methode in Java: voorbeeld van vormklasse

Wat is abstractie op Java?

Abstractie in JAVA toont alleen de essentiële attributen en verbergt onnodige details van het object van de gebruiker. In Java wordt abstractie bereikt met behulp van de abstracte klasse, abstracte methoden en interfaces. Abstractie helpt bij het verminderen van programmeercomplexiteit en inspanning.

In deze tutorial leer je-

Wat is abstracte klasse?

ABSTRACTE KLASSE is een type klasse in Java dat een of meer abstracte methoden declareert. Deze klassen kunnen zowel abstracte methoden als concrete methoden bevatten. Een normale klasse kan geen abstracte methoden hebben. Een abstracte klasse is een klasse die ten minste één abstracte methode bevat. We kunnen het concept begrijpen door de vormvoorbeeld in Java.

Denk eens aan het volgendewing klassenhiërarchie bestaande uit een Shape-klasse die wordt overgenomen door drie klassen Rechthoek, Cirkel en Driehoek. De klasse Shape is gemaakt om te besparen op gemeenschappelijke kenmerken en methoden die worden gedeeld door de drie klassen Rechthoek, Cirkel en Driehoek. berekenenArea() is zo'n methode die wordt gedeeld door alle drie onderliggende klassen en aanwezig is in de Shape-klasse.

Abstracte klasse in Java
Voorbeeld van vormabstractie

Stel nu dat je code schrijft om objecten te maken voor de hierboven afgebeelde klassen. Laten we eens kijken hoe deze objecten zullen er in een praktische wereld uitzien.

Een object van de klasse rechthoek geeft een rechthoek, een vorm die we zo vaak waarnemen in het dagelijks leven.

Abstracte klasse

Een object uit de klasse driehoek geeft een driehoek, opnieuw een veel voorkomende alledaagse vorm.

Abstracte klasse

Maar hoe zou een object van Class Shape er in een praktische wereld uitzien ??

Abstracte klasse

Als je ziet dat de Shape-klasse in dienst is ons doel te bereiken erfenis en polymorfisme. Maar het is niet gebouwd om te worden geïnstantieerd. Dergelijke klassen kunnen worden gelabeld Abstract. Een abstracte Java-klasse kan niet worden geïnstantieerd.

Syntax:

abstract class Shape{
	// code
}

Het is mogelijk dat u de Shape-klasse NIET als Abstract labelt en deze vervolgens instantieert. Maar een dergelijk object heeft geen nut in uw code en opent ruimte voor mogelijke fouten. Daarom is dit niet wenselijk.

Wat zijn abstracte methoden in Java?

ABSTRACTE METHODE in Java, is een methode die alleen de methodedefinitie heeft, maar geen implementatie bevat. Een methode zonder lichaam staat bekend als een abstracte methode. Het moet in een abstracte klasse worden gedeclareerd. De abstracte methode zal nooit definitief zijn, omdat de abstracte klasse alle abstracte methoden moet implementeren.

Zoals we allemaal weten, is de formule voor het berekenen van de oppervlakte van rechthoek, cirkel en driehoek anders. De methode 'calculArea()' moet worden overschreven door de overnemende klassen. Het heeft geen zin om het in de Shape-klasse te definiëren, maar we moeten ervoor zorgen dat alle overervende klassen de methode hebben.

Dergelijke methoden kunnen worden gelabeld abstract.

Syntax:

abstract public void calculateArea();

Voor een abstracte methode, er is geen implementatie vereist. Alleen de handtekening van de methode is gedefinieerd.

Voorbeeld van abstractiecode

abstract class Shape{  
  abstract void calculateArea();  
}  
 class guru99 extends Shape{  
void calculateArea(){System.out.println("Area of Shape");}  
public static void main(String args[]){  
 Shape obj = new guru99();  
 obj.calculateArea();
}  
}

Abstracte klasse in Java: belangrijke punten

  • Een abstracte klasse mogen hebben ook concrete (volledige) methoden.
  • Voor ontwerpdoeleinden kan een klasse abstract worden verklaard, zelfs als deze geen abstracte methoden bevat
  • Referentie van een abstracte klasse kan verwijzen naar objecten van zijn subklassen, waardoor runtime wordt bereikt polymorfisme Bijvoorbeeld: Vorm obj = nieuwe rechthoek();
  • Een klasse moet verplicht het label abstract krijgen als deze een of meer abstracte methoden heeft.

Laatste trefwoord in Java

De laatste modifier is van toepassing op klassen, methoden en variabelen. De betekenis van finale varieert van context tot context, maar het essentiële idee is hetzelfde.

  • Een laatste klasse kan niet worden geërfd
  • Een laatste variabele wordt een constante en de waarde ervan kan niet worden gewijzigd.
  • Een laatste methode kan niet worden overschreven. Dit wordt gedaan om veiligheidsredenen en deze methoden worden gebruikt voor optimalisatie.

Voorbeeld : - Om abstracte en laatste trefwoorden te leren

Stap 1) Kopieer het volgendewing code in een editor.

abstract class Shape{
   final int b = 20;
   public void display(){
     System.out.println("This is display method");
   }
   abstract public void calculateArea();
}

public class Rectangle extends Shape{
   public static void main(String args[]){
      Rectangle obj = new Rectangle();
      obj.display();
     //obj.b=200;
  }
  //public void calculateArea(){}
}

Stap 2) Bewaar, compileer en voer de code uit.

Stap 3) Fout =? De abstracte methode is niet geïmplementeerd in de klasse Rectangle. Om het probleem op te lossen, verwijder commentaarregel #15.

Stap 4) Verwijder commentaarregel # 13. Bewaar en compileer de code.

Stap 5) Fout = ? variabele b is definitief

Regels van de abstracte methode

  • Abstracte methoden hebben geen implementatie; het heeft alleen een methodehandtekening
  • Als een klasse een abstracte methode gebruikt, moet deze abstract worden verklaard. Het tegendeel kan niet waar zijn. Dit betekent dat een abstracte klasse niet noodzakelijkerwijs een abstracte methode heeft.
  • Als een reguliere klasse een abstracte klasse uitbreidt, moet die klasse alle abstracte methoden van de abstracte ouder implementeren