Invers of Control??

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
SaigonKid
Foriker
Beiträge: 21
Registriert: Do 23. Nov 2006, 22:49
Kontaktdaten:

Invers of Control??

Beitrag von SaigonKid » Mo 27. Nov 2006, 15:19

Hallo zusammen

ich habe gerade etwas mit Gambas 2 probieren wollen.

Ich habe eine ParentClass und eine ChildClass, die vom ParentClass erbt.

Dann versuche ich aus der ParentClass, eine Funktion im ChildClass aufzurufen. Geht nicht!
Ist das wahr?
Kann man das im Gambas nicht machen?

Oder mache ich hier etwas falsch?

Vielen Dank

MfG
SaigonKid

rolf
Foriker
Beiträge: 24
Registriert: Mi 4. Jan 2006, 12:37
Wohnort: Frankfurt/Main
Kontaktdaten:

Beitrag von rolf » Fr 8. Dez 2006, 19:57

Hallo SaigonKid,
Dann versuche ich aus der ParentClass, eine Funktion im ChildClass aufzurufen. Geht nicht!
Überlege mal, woher sollen die Eltern die Fähigkeiten haben, die nur das Kind gelernt hat?

Vererbung führt immer nur dazu, das die Kind-Klasse Eigenschaften der Elternklasse übernimmt NIE umgekehrt. Dann könnte ich ja einer Klasse nachträglich (durch Ableitung) unerwünschten Mist beibringen. Das kann's ja wohl nicht sein. Dann wäre der "Sicherheitsaspekt" objektorientierter Programmierung ad absurdum geführt.

Gruss Rolf

SaigonKid
Foriker
Beiträge: 21
Registriert: Do 23. Nov 2006, 22:49
Kontaktdaten:

Invers of Control

Beitrag von SaigonKid » Mo 11. Dez 2006, 14:09

Hallo rolf

der Invers of Control dient dazu, dass man auf Funktionen von Child ausführen kann.
Der Parent darf doch die Funktionen von Child kennen und aufrufen.

Verglecih :
Wenn du Vater bist und die Fähigkeiten deines Kindes kennst, dann darfst du doch auf seine Fähigkeiten zurückgreifen um deine Macherei auszuführen.
Ausser das Kind versteckt(PRIVATE) seine Fähigkeiten.

Wenn man das nicht machen kann, wovon redet man dann in der OO Ideologie?? :)

Im JAVA sowohl im C++ als auch in anderen OO Sprachen geht das.

Gruss
SaigonKid

nibbana
Foriker
Beiträge: 143
Registriert: Fr 16. Dez 2005, 21:32
Kontaktdaten:

Beitrag von nibbana » Mo 11. Dez 2006, 17:03

@SaigonKid
Du verwechselst hier die Reihenfolge. Der Vater kennt nicht die Fähigkeiten des Kindes, Er weiß nicht einmal das es eine abgeleitete Klasse gibt. Nur das Kind erbt die Fähigkeiten des Vaters und kennt diese.

@rolf
Vererbung führt immer nur dazu, das die Kind-Klasse Eigenschaften der Elternklasse übernimmt NIE umgekehrt. Dann könnte ich ja einer Klasse nachträglich (durch Ableitung) unerwünschten Mist beibringen. Das kann's ja wohl nicht sein. Dann wäre der "Sicherheitsaspekt" objektorientierter Programmierung ad absurdum geführt.
In C++ gehts aber tatsächlich. :wink:

Code: Alles auswählen

#include <stdio.h>

class C1 {
    public:
    void f() { printf("parent\n"); }
};

class C2 : C1 {
    public:
    void f() { printf("child\n"); }
};

int main(int argc, char* argv[]) {
    C1 *c;
    
    c = new C1();
    
    c->f();        // ausgabe: "parent"
    ((C2*)c)->f(); // ausgabe: "child"
}
mfg. nibbana
"Ich denke, also bin ich." (Descartes)

"Ich denke nicht, also was?" (Zen Meister Seung Sahn)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste