Een complete inleiding tot abstracte klassen in Java



Dit artikel zal je helpen met een gedetailleerde benadering van de abstracte klassen in Java, samen met voorbeelden om het concept op een veel betere manier te begrijpen.

Abstracte lessen in de gebruikers helpen om abstractie te bereiken, wat de meest cruciale objectgeoriënteerde programmeerpraktijken zijn die worden gevolgd tijdens het proces van softwareontwerp. In dit artikel zullen we de terminologie van abstracte klassen bespreken via de volgende rol.

Wat zijn abstracte klassen in Java?

Abstracte lessen in fungeren als een grens tussen de implementatiemethode en zijn functionaliteit. Het wordt gebruikt om de functionaliteit tussen de Beton klasleden en de Abstract Klasse.





Abstract-Classes-in-Java-Edureka

Abstracte klassen worden beschouwd als klassen die de Methode implementatie details van de gebruiker en toon alleen de Methode Functionaliteit. Ze worden gedeclareerd met behulp van het trefwoord abstract . Deze methoden kunnen zijn: Abstract en Niet abstract methoden in hen.

wat doet alert in javascript

Waarom hebben we abstracte klassen nodig in Java?

We hebben abstracte klassen in Java nodig om de volgende redenen:



  • Ondersteuning voor abstracte klassen Dynamische methode resolutie in runtime
  • Ze helpen gebruikers om te bereiken Losse koppeling
  • Abstracte klassen scheiden de Methode Definitie van de Inherited Subklassen
  • Ze bieden de Standaardfunctionaliteit van de gedefinieerde methode voor alle subklassen
  • Abstracte klassen bieden een Sjabloon voor toekomstige specifieke lessen
  • De abstracte klasse staat toe Code Herbruikbaarheid

Regels voor het gebruik van abstracte klassen in Java

Om een ​​abstracte klasse in Java te implementeren, moeten we de onderstaande regels volgen:



  • Een abstracte klasse moet worden gedeclareerd met de abstract trefwoord.
  • Abstracte klassen kunnen bevatten abstract en niet abstract methoden.
  • Een abstracte klasse kan dat niet zijn geïnstantieerd.
  • Ze kunnen bevatten constructeurs en statisch methoden.
  • Een abstracte klasse omvat laatste methoden.

Manieren om abstractie te bereiken in Java

Het abstractieproces in Java kan worden bereikt door de volgende twee methoden, zoals hieronder vermeld:

  1. Implementatie van een abstracte klasse
  2. Een interface implementeren

De syntaxis voor abstracte klassen

De syntaxis voor het definiëren van abstracte klassen en abstracte methoden is als volgt:

abstracte klasse Edureka {}
abstracte klasse Methode ()

Praktische voorbeelden van abstracte klassen

// Abstracte klasse

package Abstract public abstract class Person {private String name private String geslacht public Person (String nm, String gen) {this.name = nm this.gender = gen} public abstract void Studying () @Override public String toString () {return ' Naam = '+ this.name +' :: Geslacht = '+ this.gender}}

// Studentenklas

package Abstract public class Student verlengt Persoon {private int StudentID public Student (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @Override public void Studeren () {if (StudentID == 0 ) {System.out.println ('Not Studying')} anders {System.out.println ('Pursuing a Degree in Bachelor of Engineering')}} public static void main (String args []) {Person student = new Student ('Priya', 'Vrouw', 0) Persoon student1 = nieuwe student ('Karan', 'Man', 201021) Persoon student2 = nieuwe student ('Kumari', 'Vrouw', 101021) Persoon student3 = nieuwe student (' John ',' Male ', 201661) student.Studying () student1.Studying () student2.Studying () student3.Studying () System.out.println (student.toString ()) System.out.println (student1.toString ()) System.out.println (student2.toString ()) System.out.println (student3.toString ())}}

Uitgang:

wat is autoboxen in java

Niet studeren
Het behalen van een diploma in Bachelor of Engineering
Het behalen van een diploma in Bachelor of Engineering
Het behalen van een diploma in Bachelor of Engineering
Naam = Priya :: Geslacht = Vrouw
Naam = Karan :: Geslacht = Man
Naam = Kumari :: Geslacht = Vrouw
Naam = Jan :: Geslacht = Man

Verschil tussen interface en abstracte klasse

Koppel Abstracte klasse
Kan alleen abstracte methoden hebbenKan abstracte en niet-abstracte methoden hebben
Het heeft alleen definitieve variabelenHet bevat niet-definitieve variabelen
Het heeft alleen statische en definitieve variabelenHet heeft statische, niet-statische, definitieve en niet-definitieve variabelen
Zal de abstracte klasse niet implementerenKan een interface implementeren
Geïmplementeerd met behulp van het trefwoord 'implementaties'Geïmplementeerd met behulp van het trefwoord 'extends'
Kan alleen een interface uitbreidenKan Java Classes en Interfaces uitbreiden
Leden zijn standaard OpenbaarLeden kunnen privé en beschermd zijn

// Voorbeeld van abstracte klassen

package abstactVSinterface abstracte klasse Shape {String objectName = '' Shape (String name) {this.objectName = name} abstract public double area () abstract public void draw ()} class Rectangle breidt Shape {int length, width Rectangle (int length, int breedte, String naam) {super (naam) this.length = lengte this.width = breedte} @Override public void draw () {System.out.println ('Rechthoek is getekend')} @Override openbaar dubbel gebied () {return (double) (length * width)}} class Circle breidt Shape uit {double pi = 3.14 int radius Circle (int radius, String name) {super (name) this.radius = radius} @Override public void draw () { System.out.println ('Circle is drawn')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args ) {Shape rect = nieuwe rechthoek (20, 30, 'Rectangle') System.out.println ('Area of ​​rectangle:' + rect.area ()) Shape circle = new Circle (20, 'Cicle') System.out .println ('Gebied van cirkel is:' + circle.area ())}}

Uitgang:

mvc-architectuur in java met diagram

Oppervlakte van rechthoek: 600,0
Oppervlakte van cirkel is: 628,0

// Interface voorbeeld

pakket absVSint interface Shape {void draw () double area ()} class Rectangle implementeert Shape {int length, width Rectangle (int length, int width) {this.length = length this.width = width} @Override public void draw () {System.out.println ('Rectangle has been drawn')} @Override public double area () {return (double) (length * width)}} class Circle implementeert Shape {double pi = 3.14 int radius Circle (int radius) {this.radius = radius} @Override public void draw () {System.out.println ('Circle has been drawn')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args) {Shape rect = new Rectangle (20, 30) System.out.println ('Area of ​​rectangle:' + rect.area ()) Shape circle = new Circle (20) System.out.println ('Area of ​​circle:' + circle.area ())}}

Uitgang:

Oppervlakte van rechthoek: 600,0
Oppervlakte van cirkel: 628,0

Hiermee komen we aan het einde van dit artikel. Ik hoop dat je het belang van abstractie, syntaxis, functionaliteit, abstractieregels in Java en praktische voorbeelden die daarmee verband houden, hebt begrepen.

Nu u de basisprincipes van Java begrijpt, kunt u het door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De training- en certificeringcursus Java J2EE en SOA van Edureka is bedoeld voor studenten en professionals die Java-ontwikkelaar willen worden. De cursus is ontworpen om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel kern- als geavanceerde Java-concepten samen met verschillende Java-frameworks zoals Hibernate De lente .

Heeft u een vraag voor ons? Vermeld het in de commentarensectie van deze 'Abstracte lessen in Java' -blog en we nemen zo snel mogelijk contact met u op.