Laden...

An den Rückgabewert der Methode aus der Oberklasse kommen

Erstellt von cuanu vor 11 Jahren Letzter Beitrag vor 11 Jahren 525 Views
Thema geschlossen
C
cuanu Themenstarter:in
10 Beiträge seit 2012
vor 11 Jahren
An den Rückgabewert der Methode aus der Oberklasse kommen

Guten Morgen,

ich habe ein Problem beim Vererben von Methoden und/oder Werten.
Ich habe mir zum üben folgende Klassen erstellt:


abstract class MyClass
{
   private int testWert = 2;

   public virtual float setSize()
        {
            float test = 7.5f;
            return test;
        }
}

class MyChild : MyClass
{
        public override float setSize()
        {
            base.setSize();
            return ???;
        }
}

Mein Problem liegt nun darin, wie kriege ich z.B. den Wert 7,5 in die Klasse MyChild? Es geht darum, dass ich mehrere Childklassen benutzen möchte die immer die Methode setSize() brauchen und der Code sich auch nicht ändert.
Zusätzlich sollen später in einer Form Bilder gezeigt werden, die alle einen Rahmen haben sollen. Wie kann ich also generell eine Rahmenbreite in MyClass definieren die ich an alle ChildKlassen vererben kann? Also rein das zeichnen kriege ich soweit hin nur ich will nicht in jeder Childklasse die Rahmenbreite neu angeben müssen. Wenn sich dieser nun ändern würde müsste ich jede Klasse abklappern.

G
497 Beiträge seit 2006
vor 11 Jahren

warum überschreibst du setSize überhaupt, wenn die Implementierung sich nicht ändern soll?

abgesehen davon ginge das zum Beispiel so:


abstract class MyClass
{
   private int testWert = 2;

   public virtual float setSize()
        {
            float test = 7.5f;
            return test;
        }
}

class MyChild : MyClass
{
        public override float setSize()
        {
            float baseTest = base.setSize();
            return baseTest;
        }
}
C
cuanu Themenstarter:in
10 Beiträge seit 2012
vor 11 Jahren

Vielen Dank für die schnelle Antwort.
Da war ich der Lösung ja schon ziemlich nahe.
Wusste nicht das man base.methode() einfach einer Variable zuweisen kann wenn diese ein return hat aber klingt logisch.

Das mit dem virtual etc. war wiederum zum testen da ich nebenbei auchnoch mit OnPaint am arbeiten war und diese ja von mir überschrieben wird mit neuem Inhalt.

Jetzt weiß ich nur noch nicht wie ich z.B. testWert in MyChild bekomme.

Hinweis von herbivore vor 11 Jahren

Es ist gut, dass du auch anhand von Beispielen übst. Das ändert jedoch nichts daran, dass ir im Forum solche Grundlagen als bekannt voraussetzen, siehe [Hinweis] Wie poste ich richtig? Punkt 1.1.1. Wie dir das Forum trotzdem helfen kann, steht in [FAQ] Wie finde ich den Einstieg in C#?

Thema geschlossen