C# Abgeleitete Klasse soll nur ihren eigenen Konstruktor aufrufen

J

jann91

Gast
Hallo, kurze und einfach Frage. Wie realisiere ich es in C#, dass ein Object welches von einer Superklasse erbt nur den eignen Basiskonstruktor aufruft statt zusätslich den, der Basisklasse ?

Vielen Dank
 
Na ein eigenen Constructor für diese abgeleitete Klasse schreiben, in dem Du eben nicht den Constructur der Oberklasse aufrufst.
 
Das soll jetzt ein Witz sein oder?

Der Basiskonstruktor wird auch aufgerufen wenn ich das Object mit einem überschrieben Konstruktor aufrufe.


Hier mal ein Beispiel:



namespace vererbung
{
class Program
{


static void Main(string[] args)
{

Circle c = new Circle();
GrapicalCircle gc = new GrapicalCircle(1,"");
gc.draw();









Console.ReadLine();

}



class Circle
{


protected double radius =1 ;

public Circle()
{
Console.WriteLine("init");
}

public Circle(double radius)
{
this.radius = radius;
Console.WriteLine("init radius" + radius);
}
public void test()
{
Console.WriteLine("this is a test radius =" + radius);
}
}

class GrapicalCircle : Circle
{

public GrapicalCircle(float a, string b)
{
Console.WriteLine("etzala Init loide");
}


public void draw()
{
radius = 10000;
Console.WriteLine("draw");

}

}
}



}

Ausgabe:

init
init
etzala Init loide
draw
 
Der Basiskonstruktor wird immer aufgerufen. Wenn das nicht gewünscht ist sollte evtl. die Objekthierarchie nochmal überdacht werden, evtl. sollte es z.B. eine abstrakte Basisklasse ohne Konstruktor geben. Vielleicht sind auch Interfaces für deine Zwecke besser als Klassen. Das Beispiel ist zu abstrakt um da Tipps geben zu können.
 
Zurück
Oben