Abstraktion ist eines der Grundprinzipien der objektorientierten Programmierung (OOP), das sich auf die Fähigkeit eines Systems bezieht, komplexe Implementierungsdetails zu verbergen und nur wesentliche Funktionalitäten anzuzeigen. Das Ziel der Abstraktion besteht darin, die Interaktion mit komplexen Objekten zu vereinfachen, indem es Benutzern ermöglicht, sich auf das zu konzentrieren, was ein Objekt tut, und nicht darauf, wie es es tut.
In der Praxis wird Abstraktion durch die Verwendung von abstrakten Klassen und Schnittstellen erreicht, die Verhaltensweisen definieren, die von Unterklassen oder konkreten Klassen implementiert werden müssen.
Abstraktion bietet mehrere Vorteile:
Mit abstrakten Klassen können Sie Methoden ohne Implementierung (abstrakte Methoden) und konkrete Methoden definieren, die von Unterklassen verwendet werden können. Lassen Sie uns ein Beispiel mit einer abstrakten Klasse namens „Shape“ und den Unterklassen „Circle“ und „Rechteck“ erstellen.
// Classe abstrata public abstract class Forma { // Método abstrato public abstract double calcularArea(); // Método concreto public void imprimirArea() { System.out.println("A área é: " calcularArea()); } }
// Subclasse Circulo public class Circulo extends Forma { private double raio; public Circulo(double raio) { this.raio = raio; } // Implementando o método calcularArea @Override public double calcularArea() { return Math.PI * raio * raio; } }
// Subclasse Retangulo public class Retangulo extends Forma { private double largura; private double altura; public Retangulo(double largura, double altura) { this.largura = largura; this.altura = altura; } // Implementando o método calcularArea @Override public double calcularArea() { return largura * altura; } }
public class Main { public static void main(String[] args) { Forma circulo = new Circulo(5); Forma retangulo = new Retangulo(4, 6); // Imprimindo áreas circulo.imprimirArea(); // Saída: A área é: 78.53981633974483 retangulo.imprimirArea(); // Saída: A área é: 24.0 } }
A área é: 78.53981633974483 A área é: 24.0
Schnittstellen sind eine weitere Möglichkeit, Abstraktion zu implementieren. Sie definieren Methoden, die die Klassen, die sie implementieren, bereitstellen müssen, stellen jedoch keine Standardimplementierung bereit.
// Interface public interface Forma { double calcularArea(); void imprimirArea(); }
// Classe Circulo implementando a interface public class Circulo implements Forma { private double raio; public Circulo(double raio) { this.raio = raio; } @Override public double calcularArea() { return Math.PI * raio * raio; } @Override public void imprimirArea() { System.out.println("A área do círculo é: " calcularArea()); } }
// Classe Retangulo implementando a interface public class Retangulo implements Forma { private double largura; private double altura; public Retangulo(double largura, double altura) { this.largura = largura; this.altura = altura; } @Override public double calcularArea() { return largura * altura; } @Override public void imprimirArea() { System.out.println("A área do retângulo é: " calcularArea()); } }
public class Main { public static void main(String[] args) { Forma circulo = new Circulo(5); Forma retangulo = new Retangulo(4, 6); // Imprimindo áreas circulo.imprimirArea(); // Saída: A área do círculo é: 78.53981633974483 retangulo.imprimirArea(); // Saída: A área do retângulo é: 24.0 } }
A área do círculo é: 78.53981633974483 A área do retângulo é: 24.0
Abstraktion ist ein grundlegendes Konzept in der objektorientierten Programmierung, das dabei hilft, einfachere, wiederverwendbare und leichter zu wartende Systeme zu erstellen. Durch die Verwendung abstrakter Klassen und Schnittstellen können Entwickler die Komplexität der Implementierung verbergen und Benutzern und anderen Teilen des Systems eine intuitive Interaktion mit Objekten ermöglichen. Das Verstehen und Anwenden der Abstraktion ist für eine effektive objektorientierte Softwareentwicklung von entscheidender Bedeutung.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3