Hm, ich verstehe unter
OOP eine Definition WIE der Programmierer zur Entwurfszeit seine Programm-Schnittstellen zu definieren hat. D.h. die
OOP ist KEINE prozedurale Programmierung sondern ein Überbau der es ermöglicht strukturiert Schnittstellen zu entwerfen. Dieser Überbau muß die Fähigkeit besitzen zur Laufzeit über die verwendeten Schnittstelle Auskunft zu geben. Dadurch wird es möglich eine strenge Typprüfung und somit mehr Sicherheit in den Schnittstellen zu implementieren. Dies kann prozedurale Programmierung in der Form niemals erreichen.
Es ist also meiner Meinung nach ein Fehler die
OOP mit prozeduraler Programmierung zu vergleichen !
Die Mittel
OOP umzusetzen basieren teilweise auf prozeduraler Programmierung UND eben den Fähigkeiten des Compilers und dessen
IDE.
Die Spitze der
OOP ist immer das Klassenkonzept. Objecte selber sind nur die zur Laufzeit existenten Datenkontainer deren Schnittstellen durch das Klassenkonzept klar definiert wurden.
D.h. um
OOP zu erkären muß man mit den Klassen, deren Klassen-Schnittstellen = Klassenmethoden, deren
RTTI usw. anfangen. Hat man nun begriffen das ein instantiertes Object immer in Form seines Klassentypes erscheint und arbeitet so wird es leicht zu verstehen was Objecte sind.
Im Grunde arbeiten wir nicht
OOP sondern COP = Class Orientated Programming zur Entwurfszeit, und
OOP zur Laufzeit.
Gruß Hagen