Entwickler-Ecke

C# - Die Sprache - Windows.Forms.Form-Klasse nur einmal Vererben


BCT1 - Do 19.05.11 20:12
Titel: Windows.Forms.Form-Klasse nur einmal Vererben
Hey, ich hab ein kleines Problem.
Ich habe folgende Klassen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
public class A : System.Windows.Forms.Form
{
}


public class B : A
{
}

Klasse A befindet sich in einer anderen Assembly als Klasse B (im Projekt von Klasse B verweise ich auf die Assembly mit Klasse A). In Klasse A und B kann ich jetzt auf Eigenschaften der Windows Form zugreifen. Ich möchte aber, dass man diese Eigenschaften nur von Klasse A aus ändern kann. In Klasse B sollnicht ersichtlich sein, dass die Klasse "Form" überhaupt benutzt wurde.
Ich hoffe man konnte das jetzt einigermaßen verstehen.

Danke für Eure Hilfe

-Gruß


Ralf Jansen - Do 19.05.11 20:42

Das eine Ableitung mindestens das selbe Interface erfüllt wie seine Basisklasse ist ein absolutes Grundprinzip der Objektorientierung. Das ganz oder teilweise zu verstecken ist also nicht möglich. Wenn sich deine Klasse nicht wie eine Form verhalten soll gibt es aber auch keinen Grund davon abzuleiten. Vermutlich solltest du eher darüber Nachdenken in deiner Klasse B eine Instanz der Klasse A zu verwalten und nicht von A abzuleiten.