Was ist Abstraktion in OOPS?

Abstraktion ist eines der zentralen Konzepte der objektorientierten Programmierung. Abstraktion definiert ein Modell zur Erstellung einer Anwendungskomponente. Die Implementierung der Abstraktion hängt von den sprachspezifischen Eigenschaften und Prozessen ab.

1. Was ist Abstraktion?

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

2. Abstraktion im wirklichen Leben

Abstraktion ist in fast allen realen Maschinen vorhanden.

  • Ihr Auto ist ein großartiges Beispiel für Abstraktion. Sie können ein Auto starten, indem Sie den Schlüssel drehen oder den Startknopf drücken. Sie müssen nicht wissen, wie der Motor gestartet wird, welche Komponenten Ihr Auto hat. Die interne Implementierung und komplexe Logik des Autos ist für den Benutzer völlig verborgen.
  • Wir können unser Essen in der Mikrowelle erhitzen. Wir drücken einige Tasten, um den Timer und die Art des Essens einzustellen. Schließlich bekommen wir eine heiße und leckere Mahlzeit. Die internen Details der Mikrowelle sind für uns verborgen. Uns wurde der Zugang zur Funktionalität auf eine sehr einfache Weise ermöglicht.

3. Abstraktion in OOPS

Objekte sind die Bausteine der objektorientierten Programmierung. Ein Objekt enthält einige Eigenschaften und Methoden. Wir können sie vor der äußeren Welt durch Zugriffsmodifikatoren verbergen. Wir können nur den erforderlichen Funktionen und Eigenschaften den anderen Programmen zugänglich machen. Dies ist das allgemeine Verfahren zur Implementierung von Abstraktion in OOPS.

4. Welche Arten von Abstraktion gibt es?

Es gibt zwei Arten von Abstraktionen.

  1. Datenabstraktion
  2. Prozessabstraktion

4.1) Datenabstraktion

Wenn die Objektdaten für die äußere Welt nicht sichtbar sind, entsteht Datenabstraktion. Bei Bedarf wird der Zugriff auf die Objektdaten über einige Methoden bereitgestellt.

Data Abstraction

4.2) Prozessabstraktion

Wir müssen keine Details zu allen Funktionen eines Objekts bereitstellen. Wenn wir die interne Implementierung der verschiedenen Funktionen, die an einer Benutzeroperation beteiligt sind, verbergen, entsteht Abstraktion des Prozesses.

Process Abstraction

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 tatsächlichen 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("turn on the manual car");
	}

	@Override
	public void turnOffCar() {
		System.out.println("turn off the manual car");
	}

	@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("turn on the automatic car");
	}

	@Override
	public void turnOffCar() {
		System.out.println("turn off the automatic car");
	}

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

User Program: Schauen wir uns ein Testprogramm an, in 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 Clientprogramm kennt nur das Auto und die Funktionen, die das Auto bereitstellt. Die internen Implementierungsdetails sind dem Clientprogramm verborgen. Referenzen: Wikipedia, Oracle Docs

Source:
https://www.digitalocean.com/community/tutorials/what-is-abstraction-in-oops