Die abzuleitende Klasse als Parameter übergeben

Diskutiere Die abzuleitende Klasse als Parameter übergeben im Allgemeine Java-Themen Bereich.
L

Lobalo

Hallo,

Für ein bestimmtes Prozedur habe ich aktuell folgendes Schema
Code:
Class1 extends ClassA{
...
}

Class1 obj1 = new Class1 ()
obj1 .machewas
obj1 .machenochwas
....
....
Nun haben sich die Anforderungen geändert, sodass die gleiche Prozedur nochmal ablaufen soll, allerdings über eine andere abgeleitete Klasse.
Ich habe das erstmal so gelöst, dass ich eine Class2 erstellt habe die identisch zu Class1 ist (Nur dass von ClassB abgeleitet wird und nicht von ClassA).

Das geht sicherlich etwas schöner, aber ich weiß nicht wie. Meine Idee war zunächst, dass ich in Class1 über den Konstuktor irgendwie die Klasse von der abgeleitet werden soll übergebe, nur meine Versuche liefen leider ins leere!

Also wie macht man sowas richtig ? :)
 
Kirby_Sike

Kirby_Sike

Java:
public void helper(ClassA obj){
    obj1 .machewas
    obj1 .machenochwas
}
Dies funktioniert jedoch nur wenn alle eingefügten Klassen von ClassA erben
 
mrBrown

mrBrown

Das klingt nicht danach, als ob Vererbung an der Stelle sinnvoll wäre, eher nach XY-Problem.

Kannst du die Anforderung noch mal anders beschreiben?
 
B

Blödsinn1

Du kannst mit einem B-Objekt keine Methode aus A aufrufen, die in B überschrieben wurde... Überdenke das Design.
 
T

temi

Was ist denn der Unterschied zwischen ClassA und ClassB?

Für mich klingt das wie:
Java:
interface AB {
    void funktion1();
    void funktion2();
}

class ClassA implements AB {}

class ClassB implements AB {}

class Class1 {
    private AB obj;
 
    public Class1(AB obj) {
        this.obj = obj;
    }
 
    public void machWas() {
        obj.funktion1();
        // ...
    }

    public void machNochWas() {
        obj.funktion2();
        // ...
    }
}

ClassA cA = new ClassA();
ClassB cB = new ClassB();
// ...
Class1 c1 = new Class1(cA);
c1.machWas(); // mit den Daten von ClassA
c1.machNochWas();

Class1 c2 = new Class1(cB);
c2.machWas(); // mit den Daten von ClassB
c2.machNochWas();
 
Zuletzt bearbeitet:
Thema: 

Die abzuleitende Klasse als Parameter übergeben

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben