Autor Beitrag
Newbie_2013_
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 16.02.13 14:39 
Hallo,

habe folgende Vererbungsstruktur: s14.directupload.net...168/z728hh3j_png.htm

Meine Frage lautet nun: Wieso kann ich im Konstruktor der Klasse InvestmentVariable die Methode aus der Oberklasse aufrufen ohne vorher ein Objekt der Klasse InvestmentVariable erstellt zu haben?

Mit besten Grüßen

Philipp Obergfell
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 16.02.13 15:38 
Hallo und :welcome:

du meinst wohl eher "ohne vorher ein Objekt der Klasse ModelVariable erstellt zu haben"?

Du hast in einer abgeleiteten Klasse automatisch Zugriff auf alle Methoden (und Eigenschaften) der geerbten Klasse, d.h. z.B. einfach
ausblenden C#-Quelltext
1:
setName("...");					

Du kannst aber auch explizit mittels des Schlüsselworts base darauf zugreifen:
ausblenden C#-Quelltext
1:
base.setName("...");					


P.S. In C# ist es üblich (d.h. entspricht dem Microsoft StyleGuide), daß alle Methoden (und Eigenschaften) mit einem Großbuchstaben anfangen. Die obige Nomenklatur mit get... und set... entspricht mehr dem Java StyleGuide und sollte in C# vermieden werden.

Für diesen Beitrag haben gedankt: Newbie_2013_
Newbie_2013_ Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 16.02.13 15:49 
Super, danke dir! Eine Frage habe ich aber trotzdem noch: Normalerweise wird doch in der Parameterliste Typ und Name der Variable genannt. Bei der setName-Methode hier nur der Name. Liegt das daran dass im Konstruktor die Variable schon mit Typ und Namen übergeben wurde? Also "string" und "name".

MfG
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 16.02.13 16:01 
Wen du dich auf den Codeauszug in deinem Screenshot beziehst dann steht da nur der Variablenname bei der setName Methode weil es der Methodenaufruf ist und nicht die Methodendefinition. Bei der Definition gehört der Typ natürlich dazu.

Für diesen Beitrag haben gedankt: Newbie_2013_