Entwickler-Ecke
C# - Die Sprache - Elternklassenkonstruktor für Kindklassen?
BlackMatrix - Sa 04.12.10 16:51
Titel: Elternklassenkonstruktor für Kindklassen?
Hi.
Ist es möglich einen Konstruktor in der Elternklasse zu definieren, der automatisch für alle Kindklassen Pflicht wird oder muss der Konstruktor in jeder Kindklasse neu definiert werden?
Ich möchte gerne ein Objekt der Kindklasse wie folgt erzeugen:
C#-Quelltext
1:
| Kindklasse kind = new Kindklasse("Hans"); |
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| abstract class Elternklasse { public Elternklasse(string name) {
} }
class Kindklasse : Elternklasse {
} |
MfG
Moderiert von
Kha: Topic aus Basistechnologien verschoben am Sa 04.12.2010 um 17:59
Kha - Sa 04.12.10 17:59
BlackMatrix hat folgendes geschrieben : |
| oder muss der Konstruktor in jeder Kindklasse neu definiert werden? |
Ja, einfach die Signatur kopieren und direkt den Elternkonstruktor aufrufen.
zenten - Sa 04.12.10 18:06
Hallo BlackMatrix,
Konstruktoren der Elternklasse können nicht geerbt werden. Es wird lediglich der Default Kontruktor(Parameterlos) der Elternklasse aufgerufen.
Wenn du Konstruktoren der Elternklasse nutzen möchtest, kannst du das durch Konstruktorenverkettung erreichen.
Beispiel:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| class Elternklasse { public Elternklasse(string name) { Console.WriteLine(name); } }
class Subklasse : Elternklasse { public Subklasse(string name) :base(name) {
} } |
Das ":base(name)" ruft den Konstruktor aus der Elternklasse auf mit dem entsprechenenden Parameter "name".
":base()" identifiziert den aufzurufenden Konstrutor anhand der Parameter die zu übergeben werden.
Kann auch hier nachgelesen werden:
http://openbook.galileocomputing.de/visual_csharp/visual_csharp_03_008.htm#mj0724422b9c46345b32bb84ee346fab0d
Gruß
zenten
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!