Abstraktion vs abstrakte Klasse,
laut http://www.cs.cornell.edu/courses/cs211/2006sp/Lectures/L08-abstraction/08_abstraction.html
Abstraktion kommt in zwei Geschmacksrichtungen. Eine Funktion ist Abstraktion und der andere ist Abstraktion der Daten. Aber wo abstrakte Klassen passen? Soweit ich sehe, abstrakte Klassen sind ein völlig anderes Konzept und auch wenn der name vermuten lässt, es hat etwas zu tun mit OOP-Prinzipien.
Könnte bitte jemand etwas Licht in diese Schuppen ?
javacoffeebreak.com/faq/faq0084.html.
sind Sie nicht zufrieden mit den Antworten noch? Bitte nehmen Sie eine von den Antworten
sind Sie nicht zufrieden mit den Antworten noch? Bitte nehmen Sie eine von den Antworten
InformationsquelleAutor crowso | 2012-09-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese sind sehr unterschiedliche Konzepte.
Abstraktion ist ähnlich dem Konzept der black-box. Input geht in den schwarzen Kasten etwas tut, Ausgabe kommt heraus. Es spielt keine Rolle, was in der black box passiert, alles, was Sie wissen müssen, ist, dass es funktioniert. Ein real-life Beispiel HIERFÜR ist der java-hash-Funktion, muss der Benutzer wissen, ist, dass es hasht die Eingabe-Wert, ist es egal für den Benutzer, wie die Reihe bekommt Hash. Die schwarze box ist die Abstraktion. Der Punkt ist, Sie müssen nicht wissen, wie es funktioniert, nur, dass es funktioniert.
Abstrakte Klassen (zumindest in Java) sind eine Mischung zwischen den Schnittstellen und volle OOP-Klassen. Ein interface definiert Methoden, die jeder erweitern, muss die Klasse haben, ist es ein Vertrag in dem code, den es implementiert die Schnittstelle ordnungsgemäß und versichert, alles funktioniert wie erwartet. Eine abstrakte Klasse hat diese leeren Methoden(Vereinbarungen) und auch vollständig implementierte Methoden, die aufgerufen werden können.
InformationsquelleAutor Scott
Objekte im Allgemeinen kombinieren Sie Daten mit Funktionalität, und eine abstrakte Klasse ist keine Ausnahme. In einigen Fällen, die Abstraktion vorausgesetzt, ist fast Reine Daten, mit Funktionen, die nur für den Zugriff auf die Daten (z.B. collection-Klassen). Andere Fälle sind fast das Gegenteil (z.B. der Abstraktion bereitgestellt, die von einem Funktor in C++ ist in der Regel ziemlich genau eine Funktion).
Diejenigen, natürlich, sind so ziemlich die Extreme-viele (die meisten?) Klassen liegen irgendwo dazwischen.
Mein Punkt ist, dass eine abstrakte Klasse kann darstellen, oder beide in unterschiedlichem Maße.
InformationsquelleAutor Jerry Coffin