Hi Leute,
ich habe eine Informatik-Übung, bei der ich mal Hilfe bräuchte, hier ist die Aufgabe:
------------------------------------------------------------------------------------------------------------------
a) Gegeben seien folgende Methoden, wobei B Unterklasse von A und C Unterklasse von B ist:
int add(long a, int b) {...} // Methode 1
int add(double a, float b) {...} // Methode 2
void print(B b, C c) {...} // Methode 3
void print(A a, B b) {...} // Methode 4
Welche Methode wird statisch an folgende Aufrufe gebunden, bzw. was passiert bei folgenden Aufrufen
(begründen)?
A a = new A();
B b = new B();
C c = new C();
add(1.0, 2.0); // Aufruf 1
add(2.0, 1.0F); // Aufruf 2
add(1, 2); // Aufruf 3
add(2, 1L); // Aufruf 4
print(c, c); // Aufruf 5
print(a, c); // Aufruf 6
print(c, b); // Aufruf 7
print(b, a); // Aufruf 8
------------------------------------------------------------------------------------------------------------------
aalso gut ich hab die Aufgabe jetzt mal so interpretiert, dass die Methoden in jeder Klasse stehen!? ich weiß, dass die Klasse C aktuell ist, weil sie ja als letztes Objekt aufgerufen wird und auch die unterste Unterklasse ist sozusagen.
also kann man auf jeden Fall Objekte vom Typ C aufrufen.
weiterhin sind das ja überladene Methoden, also der Compiler (oder wer auch immer) sucht sich die passende Methode aus, je nachdem, welcher wert eingegeben wird
ich habe vor Allem folgendes problem: ich weiß nicht, ob man die Objekte a und b aufrufen kann?
mein Lösungsvorschlagwäre:
aufruf 1: hier handelt es sich um kommazahlen, also methode 2
aufruf 2: auf jeden Fall methode 2 wegen dem F
aufruf 3: methode 1
aufruf 4: fehler**** der zweite typ kann ja kein Long sein?
aufruf 5, 6,7,8: hier weiß ich nicht, kann man überhaupt auf a, b und c zugreifen? wenn ja, wie ist das mit der reihenfolge? die wird ja gar nicht eingehalten... also entweder gehen die Aufrufe 7 und 8 und vielleicht sogar 5, weil c ja einmal vorkommt, oder die gehen alle gar nicht, weil die reihenfolge nicht stimmt****
wär nett, wenn ihr mir eure Intelligenz borgen könntet
@mods: falls das in irgendein unterforum sollte, sorry!
danke
Fire
ich habe eine Informatik-Übung, bei der ich mal Hilfe bräuchte, hier ist die Aufgabe:
------------------------------------------------------------------------------------------------------------------
a) Gegeben seien folgende Methoden, wobei B Unterklasse von A und C Unterklasse von B ist:
int add(long a, int b) {...} // Methode 1
int add(double a, float b) {...} // Methode 2
void print(B b, C c) {...} // Methode 3
void print(A a, B b) {...} // Methode 4
Welche Methode wird statisch an folgende Aufrufe gebunden, bzw. was passiert bei folgenden Aufrufen
(begründen)?
A a = new A();
B b = new B();
C c = new C();
add(1.0, 2.0); // Aufruf 1
add(2.0, 1.0F); // Aufruf 2
add(1, 2); // Aufruf 3
add(2, 1L); // Aufruf 4
print(c, c); // Aufruf 5
print(a, c); // Aufruf 6
print(c, b); // Aufruf 7
print(b, a); // Aufruf 8
------------------------------------------------------------------------------------------------------------------
aalso gut ich hab die Aufgabe jetzt mal so interpretiert, dass die Methoden in jeder Klasse stehen!? ich weiß, dass die Klasse C aktuell ist, weil sie ja als letztes Objekt aufgerufen wird und auch die unterste Unterklasse ist sozusagen.
also kann man auf jeden Fall Objekte vom Typ C aufrufen.
weiterhin sind das ja überladene Methoden, also der Compiler (oder wer auch immer) sucht sich die passende Methode aus, je nachdem, welcher wert eingegeben wird
ich habe vor Allem folgendes problem: ich weiß nicht, ob man die Objekte a und b aufrufen kann?
mein Lösungsvorschlagwäre:
aufruf 1: hier handelt es sich um kommazahlen, also methode 2
aufruf 2: auf jeden Fall methode 2 wegen dem F
aufruf 3: methode 1
aufruf 4: fehler**** der zweite typ kann ja kein Long sein?
aufruf 5, 6,7,8: hier weiß ich nicht, kann man überhaupt auf a, b und c zugreifen? wenn ja, wie ist das mit der reihenfolge? die wird ja gar nicht eingehalten... also entweder gehen die Aufrufe 7 und 8 und vielleicht sogar 5, weil c ja einmal vorkommt, oder die gehen alle gar nicht, weil die reihenfolge nicht stimmt****
wär nett, wenn ihr mir eure Intelligenz borgen könntet

@mods: falls das in irgendein unterforum sollte, sorry!
danke
Fire