Typkonvertierung und Casten?

Math55

Mitglied
moin, hat jemand mal einen link, wo das mit dem upcasten und downcasten erklärt wird. also was ist erlaubt, wo muss ich nicht explizit casten oder wo muss ich explizit casten. wenn ich jetzt eine klasse habe wie zum beispiel:

Code:
  class A {
  	void m (A a) { System.out.println("1"); } 
  }
  
  class B extends A {
  	void m (A a) { System.out.println("2"); } 
  	void m (B b) { System.out.println("3"); } 
  }
  
  class Test {
  	public static void main(String[] argv) {
  		B b = new B();
  		A a = b; //?
  		
  		a.m(a);
  		a.m(b);
  		b.m(a);
  		b.m(b);
  	}
  }
was genau passiert da in der zeile mit den fragezeichen und warum ist die ausgabe '2223'? also solche sachen würd ich gern wissen :-).

man dankt!!
 
Zurück