Methodenaufruf mit abgeleiteter Klasse als Arg...

fluppe

Mitglied
Also,

nun stehe ich vor folgendem Problem:

Ich habe eine klasse "A" und eine abgeleitete Klasse "B". Außerdem habe ich ein Interface "IFC".
Das Interface sieht so aus:
Code:
public interface IFC
{
    void some(A xy );
}

Meine Frage ist: Was muss ich tuen, um die Methode "some" mit einem Argument vom Typ "B" aufrufen zu können ??

Ganz trivial scheint es nicht zu sein, muss ich dafür an den Interface was machen, oder wie kann das gehen ?

Besten Dank schonmal fürs lesen und einen schönen Abend noch,

...
 

theo_retiker

Mitglied
Also wenn ich das richtig verstehe, dann implementieren A und B das Interface NFC nicht. Dann erstellst du einfach ein neues Interface I, das irgendwie so aussieht:
Code:
public interface I
{
    public void methode();
}
Dann kannst du in IFC einfach statt A ein I übergeben:
Code:
void some(I xy );
An xy kannst du nun "methode()" aufrufen, von der es dann weiter geht.

Falls ich das falsch verstanden habe und A und B schon IFC implementieren, dann brauchst du einfach "public void some(IFC xy);" schreiben.

mfg
 

Tobse

Top Contributor
Ich verstehe das eher so:

Java:
class A { }
class B extends A { }
class X implements IFC {  }

Dann kannst ganz simpel some aufrufen:

Java:
B obj = new B();
X impl = new X();
impl.some(obj);
 

fluppe

Mitglied
Naja,

ich bin hier der Anfänger.
@Enceladus271: Ich hatte das auch erstmal so verstanden, aber irgendwie ging es nicht ...

Es ist auch noch ein bisschen komplizierter: Die Methode "some" wird später überladen. Da steht dann also
sowas:
Java:
new IFC(){
@override
public void some(A xy){

.... was passieren soll ....

}

Das will ich jetzt ändern zu " ... some(B xy) ... " aber das scheint nicht zu gehen ...
Ich meine aber, daß das eigentlich nur komplizierter aussieht, aber prinzipiell nichts anderes ist als das beschriebene Vorgehen.
Ich muss nochmal schauen, ob da noch etwas anderes versaubeutelt habe.

Jedenfalls Danke erstmal und beste Grüße,
...
 

fluppe

Mitglied
Noch ein(e par) Frage(n), als Nachtrag sozusagen: Bei einer abgeleiteten Klasse ... gibt es sowas wie einen Konstruktor
abglKlasse( Klasse xy)
oder muss man den selber stricken ? Oder macht das gar keinen Sinn ?
Und angenommen, ich will ein Objekt vom Typ "Klasse" jetzt in eines vom Typ ""abglKlasse" umwandeln/casten, welche Möglichkeiten gibt es da ??

Besten Dank,
...
 

VfL_Freak

Top Contributor
Moin,

Noch ein(e par) Frage(n), als Nachtrag sozusagen: Bei einer abgeleiteten Klasse ... gibt es sowas wie einen Konstruktor
abglKlasse( Klasse xy)
oder muss man den selber stricken ? Oder macht das gar keinen Sinn ?
Sicher benötigt die abgeleitete Klasse ihren eigenen Konstruktor ....
http://openbook.rheinwerk-verlag.de...05_008.htm#mjf275cae4069cb07f60b602bcbea532c8

Und angenommen, ich will ein Objekt vom Typ "Klasse" jetzt in eines vom Typ ""abglKlasse" umwandeln/casten, welche Möglichkeiten gibt es da ??
Keine, warum solltest Du das wollen ?? :confused:
Nimm an, Du hast die Klasse "Fahrzeug" und leitest jeweils "PKW" und "LKW" davon ab.
"PKW" und "LKW" sind jetzt spezieller als "Fahrzeug" (oder werden es beim Ausprogrammieren bspw. weiterer spezifischer Attribute).
"Fahrzeug" ist quasi nur eine Art Schablone, von der du vermutlich nie eigene Objekte erzeugen würdest !

Gruß Klaus
 

fluppe

Mitglied
Warum ich das wollen sollte ?? Keine Ahnung, aber ich meine sowas kann doch vorkommen.
Nehmen wir mal an ich habe da eine Klassenbibliothek und da sitzt "Fahrzeug" drin. Ich möchte nun dieses "Fahrzeug" erweitern, ohne die ganze Bibliothek auf links zu ziehen.
Da könnte sowas ganz praktisch sein...

Da gibt es zum Beispiel ein Objekt "Parkplatz" und das hat einen Haufen Methoden, die allesamt sowas machen wie "addFahrzeug" ...

Ich möchte nun aber "LKW" oder "PKW" adden ... macht die Methode nicht, sie erzeugt ein ein "Fahrzeug" und packt es auf den Parkplatz ...

Als abgeleitete Klasse muss ja nun auch "LKW" oder "Auto" auf den Parkplatz draufpassen, aber ich kann es nicht mit der "addFahrzeug" - Methode parken.

Also müßte ich sowas machen wie eine "addLKW" und eine "addAuto" methode, die den Konstruktor von "LKW" oder "Auto" aufrufen.

Jetzt wird aber, damit es nicht zu einfach ist, das Fahrzeug gleichzeitig noch zu einer weiteren Klasse, sagen wir mal "ParkplatzkassenListe" hinzugefügt. Da möchte ich vielleicht nicht auch noch irgendwas extra machen ... also will ich das Ding einmal als "Fahrzeug" an der Kasse registrieren und einmal als "LKW" parken (ist so eine Art Betrug, weil LKWs bestimmt teurer sind).

Ich bin nicht ganz sicher was da nun das Beste wäre ... klar, wahrscheinlich hat Java super duper features, die das alles easy machen, aber die kenne ich blöderweise nicht. Daher die Idee mit dem casten, auch wenn die vielleicht ein wenig dem OO Stil zuwiderläuft.

Naja, Versuch macht kluch, ... oder doofe Fragen stellen ...
Ist wahrscheinlich das Beste, wenn ich die Bibliothek eben doch auf links ziehe ... dann weiß ich am Ende auch genau, was gespielt wird.
Ich werde auch mal versuchen, mein Problem etwas praziser auf das Parkplatzbeispiel umzusetzen. Erfahrungsgemäß helfen mir solche Vereinfachungen immer sehr bei Verständnisproblemen.
Das Ergebnis kann ich ja dann mal hier posten.

Vielen Dank für die Antworten soweit und beste Grüße,
...
 

fluppe

Mitglied
Hi, das ist schon richtig.
Zu meiner Konfusion trägt außerdem die Tatsache bei, daß ich ja noch nicht einmal so genau weiss, was ich vorhabe ... und vorhaben werde.
Also werde ich wohl erstmal meinen Horizont ein wenig gerade ziehen müssen. Dabei können die Links da sicher nur helfen. Wie gesagt, ich werde das Ergebnis meiner Sinnsuche hier posten ...

Bis dahin fare well ( ... kann man ein Thema als "resolved" markieren ?? und wenn ja, wie ??),
... und alles Gute für die neue Saison.
 

JStein52

Top Contributor
Nur noch mal zu deinen Parkplatz- und Parkplatzkassenbeispielen:

1.) bei allen Methoden wo du ein Fahrzeug als Parameter angeben kannst kannst du auch einen LKW oder einen PKW als Parameter angeben.
2.) scheinen deine Klassen Parkplatz und Parkplatzkasse eben genau keine Unterschiede zu machen zwischen PKW und LKW sonst hätten sie ja spezifische Methoden und würden die Klasse PKW und LKW kennen. Wenn du also Parkplätze und Kassen haben willst die das unterscheiden musst du davon eben auch spezielle Klassen ableiten. Bei deinen Überlegungen ist ein Widerspruch drinnen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Thymleaf Methodenaufruf Allgemeine Java-Themen 4
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
A Methodenaufruf funktioniert nicht richtig Allgemeine Java-Themen 5
mrbig2017 Kapselung Methodenaufruf in DLL schlägt fehl! Allgemeine Java-Themen 1
S Methodenaufruf in Unterklassen Allgemeine Java-Themen 3
O Zeitbedingter Methodenaufruf Allgemeine Java-Themen 1
C Objekt Datenverlust nach Methodenaufruf Allgemeine Java-Themen 9
D Frage und Antwort Programm, Problem bei Methodenaufruf Allgemeine Java-Themen 3
127.0.0.1 Methodenaufruf -cannot find symbol- Allgemeine Java-Themen 14
S Methoden Unerwarteter Methodenaufruf Allgemeine Java-Themen 5
T Polymorphie Statischer Methodenaufruf einer Kindsklasse Allgemeine Java-Themen 4
pg1337 Methodenaufruf Allgemeine Java-Themen 22
D Vererbung, Reflection und automatischer Methodenaufruf Allgemeine Java-Themen 24
R Java Parameterabfrage bei Methodenaufruf Allgemeine Java-Themen 4
MQue Performance Methodenaufruf - if Abfrage Allgemeine Java-Themen 19
B Problem mit Methodenaufruf in Konstruktor Allgemeine Java-Themen 6
S Bekomme nullwerte bei methodenaufruf in versch. Klassen Allgemeine Java-Themen 16
W Sequentieller Methodenaufruf -> UML Allgemeine Java-Themen 10
G [Reflection + WebService] Methodenaufruf an einem Proxy Allgemeine Java-Themen 11
S Methodenaufruf per String? Allgemeine Java-Themen 4
G Fehler bei Methodenaufruf Allgemeine Java-Themen 30
P Methodenaufruf von catch Allgemeine Java-Themen 2
MQue Methodenaufruf auf der Insel Allgemeine Java-Themen 4
MQue Methodenaufruf von wem? Allgemeine Java-Themen 11
egrath Zu langsamer Methodenaufruf Allgemeine Java-Themen 4
N Methodenaufruf wiederholbar machen? Allgemeine Java-Themen 2
H Methodenaufruf Allgemeine Java-Themen 5
D Probleme mit Methodenaufruf von Klasse in dll (jni) Allgemeine Java-Themen 19
M Vergleich im geordeten Vector und Methodenaufruf Allgemeine Java-Themen 2
byte Methodenaufruf per Reflection? Allgemeine Java-Themen 2
B Methodenaufruf Allgemeine Java-Themen 6
S Methodenaufruf Allgemeine Java-Themen 4
G Zugriff auf Variable in abgeleiteter Klasse Allgemeine Java-Themen 6
L Problem mit eigener, abgeleiteter Klasse Allgemeine Java-Themen 2
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
missy72 Klassen Eigene Klasse MessageWindow ähnlich der Alert Klasse Allgemeine Java-Themen 2
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
C Klasse mit Mockito simulieren Allgemeine Java-Themen 9
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
S static in Interface und Klasse Allgemeine Java-Themen 2
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
J Builder Klasse mit Lombok bauen Allgemeine Java-Themen 2
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
M [SOAP] - Klasse aus WSDL ausschließen Allgemeine Java-Themen 2
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
X Klassen Klasse BreakIterator Allgemeine Java-Themen 6
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
M Matcher-Klasse findet match nicht Allgemeine Java-Themen 6
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
Neoline Klassen Singleton Klasse buchmanager Allgemeine Java-Themen 19
M Kapselung Modellierung von Intervallen: Klasse Interval Allgemeine Java-Themen 4
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
ReinerCoder Klasse kann nicht public deklariert werden Allgemeine Java-Themen 2
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
X Klassen File-Klasse wird als Directory markiert Allgemeine Java-Themen 8
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
J IndexOutOfBoundsException bei der Nutzung der Klasse Message von mime4j Allgemeine Java-Themen 5
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
perlenfischer1984 Lombok Builder soll andere Klasse bauen Allgemeine Java-Themen 4
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
K Best Practice Auf die Klasse zugreifen im erzeugten ActionListener Allgemeine Java-Themen 2
K Mit Button neue Klasse öffnen Allgemeine Java-Themen 9
J Reflection mit Klasse und Subklasse Allgemeine Java-Themen 11
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Allgemeine Java-Themen 7
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
A Java Klasse auf Tomcat während der Laufzeit austauschen Allgemeine Java-Themen 1
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben