Una introducció completa a les classes abstractes a Java



Aquest article us ajudarà amb un enfocament detallat de les classes abstractes a Java juntament amb exemples per entendre el concepte d’una manera molt millor.

Classes abstractes a ajudar els usuaris a aconseguir l’abstracció, que és la pràctica de programació orientada a objectes més crucial seguida durant el procés de disseny de programari. En aquest article, analitzarem la terminologia de les classes abstractes a través del següent expedient.

Què són les classes abstractes a Java?

Classes abstractes a actuen com a límit entre el mètode d’implementació i la seva funcionalitat. S'utilitza per intercanviar la funcionalitat entre els fitxers Formigó membres de la classe i Resum Classe.





Abstract-Classes-in-Java-Edureka

Les classes abstractes es consideren aquelles classes que amaguen el Implementació del mètode detalls de l'usuari i només mostren els fitxers Funcionalitat del mètode. Es declaren mitjançant la paraula clau resum . Aquests mètodes poden incloure Resum i No abstracte mètodes en ells.

com convertir un número a binari en python

Per què necessitem classes abstractes a Java?

Necessitem classes abstractes a Java pels motius següents:



  • Suport a les classes abstractes Resolució de mètode dinàmic en temps d'execució
  • Ajuden els usuaris a aconseguir-ho Acoblament solt
  • Les classes abstractes separen el Definició del mètode dels Heretats Subclases
  • Proporcionen el Funcionalitat per defecte del mètode definit per a totes les subclases
  • Les classes de resum ofereixen un Plantilla per a futures classes específiques
  • La classe abstracta permet Codi Reutilització

Regles per utilitzar classes abstractes a Java

Per implementar una classe abstracta a Java, hem de seguir les regles que es descriuen a continuació:



  • Cal declarar una classe abstracta mitjançant resum paraula clau.
  • Les classes abstractes poden incloure resum i no abstracte mètodes.
  • Una classe abstracta no pot ser instantània.
  • Poden incloure constructors i estàtic mètodes.
  • Una classe abstracta inclou final mètodes.

Maneres d'aconseguir l'abstracció a Java

El procés d'abstracció a Java es pot aconseguir mitjançant els dos mètodes següents, tal com s'esmenta a continuació:

conductor de seleni amb exemple de cogombre a l'eclipsi
  1. Implementació d’una classe abstracta
  2. Implementació d’una interfície

La sintaxi per a classes abstractes

La sintaxi per definir classes abstractes i mètodes abstractes és la següent:

classe abstracta Edureka {}
mètode de classe abstracta ()

Exemples pràctics de classes abstractes

// Classe abstracta

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

// Classe de l’alumne

package Abstract public class Student extends Person {private int StudentID public Student (String nm, String gen, int id) {super (nm, gen) this.StudentID = id} @Override public void Studying () {if (StudentID == 0 ) {System.out.println ('No estudiar')} else {System.out.println ('Perseguir un títol de grau en enginyeria')}} public static void main (String args []) {Person student = new Student ('Priya', 'Dona', 0) Persona estudiant1 = estudiant nou ('Karan', 'Home', 201021) Persona estudiant2 = estudiant nou ('Kumari', 'Dona', 101021) Persona estudiant3 = estudiant nou (' 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 ())}}

Sortida:

No estudiar
Cursant una llicenciatura en enginyeria
Cursant una llicenciatura en enginyeria
Cursant una llicenciatura en enginyeria
Nom = Priya :: Gènere = Dona
Nom = Karan :: Gènere = Home
Nom = Kumari :: Gènere = Dona
Nom = Joan :: Gènere = Home

Diferència entre la interfície i la classe abstracta

Interfície Classe de Resum
Només pot tenir mètodes abstractesPot tenir mètodes abstractes i no abstractes
Només té variables finalsInclou variables no finals
Només té variables estàtiques i finalsTé variables estàtiques, no estàtiques, finals i no finals
No implementarà la classe abstractaPot implementar una interfície
Implementat mitjançant la paraula clau 'implementos'Implementat amb la paraula clau 'extends'
Només es pot ampliar una interfíciePot ampliar classes i interfícies Java
Els membres són públics per defecteEls membres poden ser privats i protegits

// Exemple de classe abstracta

package abstactVSinterface abstract class Shape {String objectName = '' Shape (String name) {this.objectName = name} abstract public double area () abstract public void draw ()} class Rectangle extends Shape {int length, width Rectangle (int length, int width, String name) {super (name) this.length = length this.width = width} @Override public void draw () {System.out.println ('Rectangle is drawn')} @Override public double area () {retorn (doble) (longitud * amplada)}} classe Cercle amplia Forma {doble pi = 3,14 int radius Cercle (int radi, nom de la cadena) {super (nom) this.radius = radi} @Override public void draw () { System.out.println ('Es dibuixa el cercle')} @Override public double area () {return (double) ((pi * radius * radius) / 2)}} class Edureka {public static void main (String [] args ) {Shape rect = new Rectangle (20, 30, 'Rectangle') System.out.println ('Area del rectangle:' + rect.area ()) Shape circle = new Circle (20, 'Cicle') System.out .println ('Àrea de cercle és:' + circle.area ())}}

Sortida:

Àrea del rectangle: 600,0
L'àrea de cercle és: 628,0

// Exemple d'interfície

paquet absVSint interfície Forma {void draw () double area ()} classe Rectangle implementa Forma {int length, width Rectangle (int length, int width) {this.length = length this.width = width} @Override public void draw () {System.out.println ('S'ha dibuixat un rectangle')} @Override public double area () {return (double) (length * width)}} classe Cercle implementa Forma {doble pi = 3,14 radi interior Cercle (radi int) {this.radius = radius} @Override public void draw () {System.out.println ('El cercle s'ha dibuixat')} @Override public double area () {return (double) ((pi * radi * radi) / 2)}} classe Edureka {public static void main (String [] args) {Shape rect = new Rectangle (20, 30) System.out.println ('Àrea del rectangle:' + rect.area ()) Shape circle = nou Cercle (20) System.out.println ('Àrea del cercle:' + cercle.area ())}}

Sortida:

Àrea del rectangle: 600,0
Àrea de cercle: 628,0

Amb això, arribem al final d’aquest article. Espero que hagueu entès la importància de l'abstracció, la sintaxi, la funcionalitat, les regles d'abstracció a Java i exemples pràctics relacionats amb elles.

Ara que heu entès els conceptes bàsics de Java, consulteu el fitxer per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java. El curs està dissenyat per donar-vos un avantatge en la programació de Java i formar-vos tant per a conceptes Java bàsics com avançats, juntament amb diversos marcs Java com Hibernate i Primavera .

Tens alguna pregunta? Esmenta-ho a la secció de comentaris d’aquest bloc “Classes abstractes a Java” i et respondrem el més aviat possible.

c ++ què és l'espai de noms