Typen über grundtype ansprechen
Übersicht

![]() |
beanage.johannesBetreff: Typen über grundtype ansprechen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, der Title koingt warscheinlich etwas merkürdig... wusste nicht wie ich es sonst nennen soll.
Ich wollte fragen ob es möglich ist das wenn ich z.B. den type Code: [AUSKLAPPEN] TMutter habe und einen Type Code: [AUSKLAPPEN] TTochter extends TMutter und noch einen TSohn Code: [AUSKLAPPEN] extends TMutter .
ich erstelle ein pa tochtern und ein par söhne, tochter und sohn haben die methode Code: [AUSKLAPPEN] printName()
alee töchter und Söhne siund zusammen in einer liste. Jetzt gehe ich die liste durch , kann ich dannCode: [AUSKLAPPEN] for local dings:TMutter = eachin(allesZusammenListe) oder muss ich die liste mehrmal (für jede klasse einmal durchegehen) ?
kurz: kann ich "abgeleitete" klassen durch ihre grundklasse ansprechen? Danke |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jein, TMutter muss alles enthalten was TSohn und TTocher auch enthalten, hat z.B. TMutter die Methode nicht drin geht es nicht.
BlitzMax: [AUSKLAPPEN] Type TMutter Später wie du es willst PrintBla() aufrufen ginge nicht! Willst du die Funktion einer Methode nicht festlegen, schreibst du Abstract hinter die Methode und somit würde TMutter auch die Methode kennen und es würde funktionieren. BlitzMax: [AUSKLAPPEN] Type TMutter So wiederum würde es gehen. Also kurz und gut: In deinem Fall werden TSohn und TTochter auf das reduziert was sie von TMutter geerbt haben. MfG DaysShadow |
||
Blessed is the mind too small for doubt |
- Zuletzt bearbeitet von DaysShadow am So, Dez 20, 2009 19:02, insgesamt einmal bearbeitet
![]() |
beanage.johannes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, vielen dank ![]() |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das geht.
Das ist eine Vorraussetzungen der Hauptaspekte von OOP. Polymorphismus wäre sonst überhaupt nicht möglich: BlitzBasic: [AUSKLAPPEN] Type Ober mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab ich irgendwas anderes geschrieben?
Die Methode muss der Oberklasse trotzdem mindestens als Abstract bekannt sein, sonst kann man es knicken. MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Entschuldigung, ich wurde beim Schreiben abgelenkt - ich musste jemandem helfen - und habe danach nicht bemerkt, dass es schon eine Lösung gibt... ![]() mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder aber:
Code: [AUSKLAPPEN] For mutter:TMutter = Eachin liste
If TTochter(mutter) Then Local tochter:TTochter = TTochter(mutter) tochter.PrintName() ElseIf TSohn(mutter) Then Local sohn:TSohn = TSohn(mutter) sohn.PrintName() EndIf Next ![]() |
||
![]() |
beanage.johannes |
![]() Antworten mit Zitat ![]() |
---|---|---|
das mit dem überschreibenfunktioniert bei mir leider nicht ![]() |
||
- Zuletzt bearbeitet von beanage.johannes am So, Dez 20, 2009 21:30, insgesamt 2-mal bearbeitet
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist mir neu!
Mein Beispiel funktioniert nämlich mit überschreiben... und es funktioniert zumindest bei mir. Zeige bitte mal Code. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
beanage.johannes |
![]() Antworten mit Zitat ![]() |
---|---|---|
der code ist zu groß um ihn hier zu posten... aber das mit "Abstract" ght auch nicht, sobal ich ein neues "mutter-objekt" erstelle meckert BMax
Zitat: Unable to create new object of abstract type....
|
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sobald eine Methode abstrakt ist, ist die ganze Klasse/Type abstrakt.
Und abstrakte Klassen/Types sind "noch nicht fertig". Daher kann man keine Objekte abstrakter Klassen/Types erstellen. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
beanage.johannes |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok.. danke habe meinen fehler (unten) gefunde... danke euch allen ![]() fehler: ich hatte nicht in jeder unter-klasse die "abtract"methode integriert. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group