Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [JAVA] Extends

    class B extends C
    {
    void x() { System.out.println("X");}
    }

    class C
    {
    void x() { System.out.println("Y");}
    }

    public class A
    {
    A()
    {
    C x=new B();
    x.x();
    }

    public static void main(String args[]) {
    new A();
    }
    }



    Questa stamperebbe: X,

    se fosse.

    1. C x=new C(); stamperebbe Y
    2. B x=new B(); stamperebbe X
    3. B x=new C(); ERRORE, ma si potrebbe farlo eseguire, con il cast forse? Come?

  2. #2
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119

    Re: [JAVA] Extends

    Originariamente inviato da cagnaluia
    class B extends C
    {
    void x() { System.out.println("X");}
    }


    class C
    {
    void x() { System.out.println("Y");}
    }

    public class A
    {
    A()
    {
    C x=new B();
    x.x();
    }

    public static void main(String args[]) {
    new A();
    }
    }



    Questa stamperebbe: X,

    se fosse.

    1. C x=new C(); stamperebbe Y
    2. B x=new B(); stamperebbe X
    3. B x=new C(); ERRORE, ma si potrebbe farlo eseguire, con il cast forse? Come?
    Tipo apparente C tipo effettivo B.
    Non puoi fare cosi' pero'.
    Devi fare C x = new B();//Tipo apparente C, tipo effettivo B
    Per invocare il metodo del tipo effettivo devi fare un cast sull'oggetto x.
    Prova...

    P.S.: non e' una buona idea chiamare metodi e oggetti allo stesso modo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.