Autor Beitrag
relapse
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: So 07.08.11 17:17 
Hallo! Eine Frage:

Ich habe drei Klassen: eine Basisklasse A und zwei von ihr abgeleiteten Klassen B:A und C:A. Ist es möglich zur Laufzeit in der Klasse B auf die spezifischen Eigenschaften der Klasse C zuzugreifen? Vielleicht über die Basisklasse?


Danke.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 07.08.11 17:52 
:welcome: in der EE!

Möglich ist das mit einem Cast immer, aber um auch noch sagen zu können, wie es schön geht, müsstest du schon etwas konkreter werden.

_________________
>λ=
relapse Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: So 07.08.11 23:21 
Jede abgeleitete Klasse hat eine eigene Print-Methode: PrintB() und PrintC() respektive. Ich möchte mit einer Instanz der C-Klasse auf die PrintB()-Methode der B-Klasse zugreifen. Ich habe Folgendes ausprobiert:

B b = new B();
A a = b; // Basisklasse A, implizites Casting
C c = (C)a; // explizites Casting, funktioniert nicht
c.PrintB(); // funktioniert nicht
pdelvo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 55
Erhaltene Danke: 11



BeitragVerfasst: Mo 08.08.11 01:24 
Natürlich funktioniert das nicht.

Die Klasse A leitet doch nicht von Klasse C ab.

Ich versuche das mal an einem Beispiel zu verdeutlichen

Es gibt die basisklasse Fahrzeug und die beiden Klassen Auto, und panzer, die beide von dieser Klasse ableiten.

Soetwas macht doch keinen Sinn: ((Panzer)auto1).Schieße(); Obwohl ein Auto ein Fahrzeug ist, ist es noch lange kein Panzer