Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Abstractie in Java | Abstracte klasse en methode met voorbeeld

Wat is abstractie in Java?

Abstractie in JAVA toont alleen de essentiële kenmerken en verbergt onnodige details van het object voor de gebruiker. In Java wordt abstractie bereikt met behulp van de klasse Abstract, abstracte methoden en interfaces. Abstractie helpt bij het verminderen van de complexiteit en moeite van het programmeren.

In deze tutorial leer je-

  • Wat is abstracte les?
  • Wat zijn abstracte methoden?
  • Voorbeeld van abstractiecode
  • Abstracte klasse in Java
  • Laatste trefwoord in Java

Wat is abstracte les?

ABSTRACTE KLASSE is een type klasse in Java, die een of meer abstracte methoden declareert. Deze klassen kunnen zowel abstracte methoden als concrete methoden hebben. 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 aan de hand van het vormvoorbeeld in java .

Beschouw de volgende klassenhiërarchie die bestaat uit een Shape-klasse die wordt geërfd door drie klassen Rechthoek, Cirkel en Driehoek. De klasse Shape is gemaakt om te besparen op algemene kenmerken en methoden die worden gedeeld door de drie klassen Rechthoek, Cirkel en Driehoek. calculatorArea() is zo'n methode die wordt gedeeld door alle drie de onderliggende klassen en aanwezig is in de Shape-klasse.

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

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

Een object van de klassendriehoek geeft een driehoek, weer een veelvoorkomende alledaagse vorm.

Maar hoe zou een object van Class Shape eruit zien in een praktische wereld ??

Als je observeert, dient de Shape-klasse in ons doel om overerving en polymorfisme te bereiken. Maar het is niet gemaakt om te worden geïnstantieerd. Dergelijke klassen kunnen worden gelabeld als Abstract . Een abstracte Java-klasse kan niet worden geïnstantieerd.

Syntaxis:

abstract class Shape{
	// code
}

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

Wat zijn abstracte methoden?

ABTRACTE 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 worden gedeclareerd in een abstracte klasse. 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 het gebied voor rechthoek, cirkel en driehoek anders. De methode berekeningArea() moet worden overschreven door de overnemende klassen. Het heeft geen zin om het in de klasse Shape te definiëren, maar we moeten ervoor zorgen dat alle overnemende klassen de methode hebben.

Dergelijke methoden kunnen worden bestempeld als abstract.

Syntaxis:

abstract public void calculateArea();

Voor een abstracte methode 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 mag 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-polymorfisme wordt bereikt. Ex:Shape obj =new Rectangle();
  • 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 klas kan niet worden overgenomen
  • Een laatste variabele wordt een constante en de waarde ervan kan niet worden gewijzigd.
  • Een definitieve methode kan niet worden overschreven. Dit wordt gedaan om veiligheidsredenen en deze methoden worden gebruikt voor optimalisatie.

Voorbeeld :- Om abstracte en definitieve zoekwoorden te leren

Stap 1) Kopieer de volgende code naar 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, verwijdert u commentaarregel #15.

Stap 4) Uncomment regel # 13 . Bewaar en compileer de code.

Stap 5) Fout =? variabele b is definitief

Regels van abstracte methode

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

Java

  1. C# abstracte klasse en methode
  2. Java abstracte klasse en abstracte methoden
  3. C# Abstract Class-zelfstudie met voorbeeld:wat is abstractie?
  4. String Length() Methode in Java:Hoe te vinden met Voorbeeld
  5. Java String charAt() Methode met Voorbeeld
  6. Java String bevat() Methode | Controleer subtekenreeks met voorbeeld
  7. Java String endsWith() Methode met voorbeeld
  8. Interface versus abstracte klasse in Java:wat is het verschil?
  9. Java BufferedReader:hoe een bestand in Java te lezen met voorbeeld
  10. Invoegsorteeralgoritme in Java met programmavoorbeeld
  11. Java - Abstractie