Pages: [1]   Go Down
Print
Author Topic: ancora su dispatch / bindig  (Read 405 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Pandemia000
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.714


Γνῶθι Σεαυτόν


« on: 15-06-2013, 12:30:01 »

Ho scritto questo programmino in java:
Code:
public class java
{
   public static void main (String [] args)
           {

B secondo=new B();
                A terzo= (A) secondo;
                   
                System.out.println( "Is uppercasted object instance of class A: "+(terzo instanceof A)  ); 
        System.out.println("Result of method1 after uppercast: " +terzo.method1(5.0));
System.out.println( "Result of overloaded method1 after uppercast: "+ terzo.method1(8));             
       
   
System.out.println("Overloading of funz:" +  funz(5));
   }

   public static double funz( double a ) {return a;}
   public static double funz ( int a) { return a*3;}
}


class A
{
    public A () { }
    public double method1(double a) {System.out.println("Method1, Class A");  return a;}
}

class B extends A
{
    public B () { super();}
    public double method2(double a) {System.out.println("Method2, Class B");  return a;}
    public double method1(double a) {System.out.println("Method1 overridden, Class B"); return a+1;}   
    public double method1(int a) {System.out.println("Method1 overloaded, Class B"); return (a+2);}
}
In pratica ho due classi A e B con B sottoclasse di A.
Faccio l'uppercast di un oggetto B ad A e chiamo alcuni  metodi dell'oggetto ottenuto. In pratica ottengo sempre la chiamata al corpo del metodo method1 della classe B. Questo a cosa è dovuto ? Grazie.

P.S. il risultato ottenuto è :
Code:
Is uppercasted object instance of class A: true
Method1 overridden, Class B
Result of method1 after uppercast: 6.0
Method1 overridden, Class B
Result of overloaded method1 after uppercast: 9.0
Overloading of funz:15.0
Logged

La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta. (Isaac Asimov)
Pages: [1]   Go Up
Print
Jump to: