Wie finde ich das Ergebnis dieses Ausdrucks in Java?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie finde ich das Ergebnis dieses Ausdrucks in Java?

by Anonymous » 12 Feb 2025, 23:21

Hier ist das Programm: < /p>
interface I {
int f(int i);
int f(I i);
}

abstract class A implements I {
protected int i;
public A(int i) { this.i = i; }
abstract public int f(int j);
public int f(I that) {
return this.f(i) + that.f(i); }
}

class B extends A {
public B(int i) { super(2*1); }
public int f(int j) { return i+j; }
}

class C extends B {
public C(int i) { super(i); }
public int f(int j) {
return super.f(j)+j; }
}

public class Main {
public static void main(String[] args) {
int x = 12;
B c = new C(x);
B b = c;
A a = new B(x);
I i;

System.out.println("a.f(b) = " + a.f(b));
System.out.println("c.f(a) = " + c.f(a));
System.out.println("c.f(b) = " + c.f(b));
System.out.println("c.f(c) = " + c.f(c));
System.out.println("b.f(c) = " + b.f(c));
}
}
< /code>
Ausführen Dies druckt Folgendes aus: < /p>
a.f(b) = 10
c.f(a) = 10
c.f(b) = 12
c.f(c) = 12
b.f(c) = 12
< /code>
Aber ich kann wirklich nicht verstehen, wie! Kann jemand den Prozess erklären, den das Programm folgt, um 10 für A.F (b) zu entwickeln? Wohin geht es? Entschuldigung, ich bin ein Anfänger. Ich habe noch kein gutes Verständnis ... < /p>
Dies war eine alte Übung von meinem Professor, wir sollten die Lösung dafür in unserem Kopf finden ohne einen Computer zu verwenden. Ich habe versucht, es logisch zu folgen, aber ich wurde sehr verwirrt.

Top