[JAVA] Polymorphismus-Quiz

Java Puzzlers Adventskalender 2016 befindet sich in einer bedauerlichen Situation, in der nur ein Beitrag fehlt, daher werde ich den Artikel für Tag 5 ersetzen Ich werde.

Problem

class MyTest
{
	private static class A {
		String message = "hello";
		Consumer<String> hello = s -> System.out.print(message + s);
		void hello(String s) { this.hello.accept(s); }
	}
	
	private static class B extends A {
		String message = "Hallo";
		void hello(String s) { this.hello.accept(s); }
	}

	public static void main(String[] args) {
		A b = (A) new B();
		b.hello(" world");
		System.out.print("/");
		b.hello.accept(" world");
	}
}

Das Ergebnis der Ausführung des obigen Codes ist

Richtige Antwort

Die Antwort ist

Erläuterung

Es mag auf den ersten Blick kompliziert erscheinen, aber wenn Sie den Polymorphismus richtig verstehen, sollten Sie ihn sofort lösen können. Werfen wir einen Blick auf die Verarbeitung der main -Methode.

Referenz

Recommended Posts

Polymorphismus-Quiz
Polymorphismus
Polymorphismus
[Java] Polymorphismus
Über Polymorphismus
Java (Polymorphismus)
Verkapselung, Polymorphismus