Abstraktion in der objektorientierten Programmierung

Abstraktion ist eines der Kernkonzepte der objektorientierten Programmierung. Abstraktion definiert ein Modell, um eine Anwendungskomponente zu erstellen. Die Implementierung der Abstraktion hängt von den sprachspezifischen Merkmalen und Prozessen ab.

1. Was ist Abstraktion?

Abstraktion ist der Prozess des Verbergens der internen Details einer Anwendung vor der Außenwelt. Sie wird verwendet, um Dinge in einfachen Begriffen zu beschreiben und eine Grenze zwischen der Anwendung und den Client-Programmen zu schaffen.

2. Abstraktion im echten Leben

Abstraktion ist in fast allen realen Maschinen vorhanden. Ihr Auto und Ihre Mikrowelle sind großartige Beispiele für Abstraktion, bei der komplexe Logik und interne Implementierung vollständig vor dem Benutzer verborgen sind und eine einfache Schnittstelle zur Interaktion bereitstellen.

3. Abstraktion in OOP

Objekte sind die Bausteine der objektorientierten Programmierung. Ein Objekt enthält einige Eigenschaften und Methoden, die wir durch Zugriffsmodifikatoren vor der Außenwelt verbergen können, wobei nur der Zugriff auf die erforderlichen Funktionen und Eigenschaften für andere Programme bereitgestellt wird. Dies ist das allgemeine Verfahren zur Implementierung von Abstraktion in OOP.

4. Welche Arten von Abstraktion gibt es?

Es gibt zwei Arten von Abstraktion: Datenabstraktion und Prozessabstraktion. Datenabstraktion beinhaltet das Verbergen der Objektdaten vor der Außenwelt und bietet bei Bedarf Zugriff über Methoden. Die Prozessabstraktion verbirgt die interne Implementierung der verschiedenen Funktionen, die an einer Benutzeroperation beteiligt sind.

5. Abstraktion in Java

Abstraktion in Java wird durch Schnittstellen und abstrakte Klassen implementiert. Sie werden verwendet, um eine Basisimplementierung oder einen Vertrag für die eigentlichen Implementierungsklassen zu erstellen.

Car.java: Basisschnittstelle oder abstrakte Klasse

package com.journaldev.oops.abstraction;

public interface Car {

	void turnOnCar();

	void turnOffCar();

	String getCarType();
}

ManualCar.java, AutomaticCar.java: Implementierungsklassen von Car.

package com.journaldev.oops.abstraction;

public class ManualCar implements Car {

	private String carType = "Manual";
	
	@Override
	public void turnOnCar() {
		System.out.println("Manuelles Auto einschalten");
	}

	@Override
	public void turnOffCar() {
		System.out.println("Manuelles Auto ausschalten");
	}

	@Override
	public String getCarType() {
		return this.carType;
	}
}
package com.journaldev.oops.abstraction;

public class AutomaticCar implements Car {

	private String carType = "Automatic";

	@Override
	public void turnOnCar() {
		System.out.println("Automatisches Auto einschalten");
	}

	@Override
	public void turnOffCar() {
		System.out.println("Automatisches Auto ausschalten");
	}

	@Override
	public String getCarType() {
		return this.carType;
	}
}

User-Programm: Sehen wir uns ein Testprogramm an, bei dem die Car-Funktionen verwendet werden.

package com.journaldev.oops.abstraction;

public class CarTest {

	public static void main(String[] args) {
		Car car1 = new ManualCar();
		Car car2 = new AutomaticCar();

		car1.turnOnCar();
		car1.turnOffCar();
		System.out.println(car1.getCarType());

		car2.turnOnCar();
		car2.turnOffCar();
		System.out.println(car2.getCarType());

	}

}

Das Client-Programm kennt nur das Auto und die Funktionen, die das Auto bietet. Die internen Implementierungsdetails sind vor dem Client-Programm verborgen. Referenzen: Wikipedia, Oracle Docs

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: