Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di felpone
    Registrato dal
    Jun 2010
    Messaggi
    182

    [java]dubbio tipi array

    Salve,
    in questo esercizio mi si dice che l'errore e a riga 13 perchè non si può fare il cast a B di un oggetto di tipo A ma secondo me è già errore a riga 12 perchè aArray referenzia un oggetto array d tipo B e io assegno a aArray[0] un oggetto di tipo A. Che ne dite?

    codice:
    public class A {
       public void f() {
          System.out.println("f di A");
       }
    }
    
    public class B extends A {
       public void f() {
          System.out.println("f di B");
       }
       public void g() {
          System.out.println("g di B");
       }
    }
    e il seguente main program (nello stesso package di A e B):

    codice:
    public class es5 {
       public static void main(String[] args) {
          B[] bArray = new B[1];
          bArray[0] = new B();
    
          A[] aArray = new A[1];
          aArray[0] = new A();
    
          aArray = bArray;
          ((A)aArray[0]).f();
    
          aArray[0] = new A();   // Riga 12
          ((B)aArray[0]).f();    // Riga 13
       }
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [java]dubbio tipi array

    Ti spiace indentare il codice e usare il tag CODE? Così è illeggibile...

    ps: Java ha una sezione dedicata...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Sposto nel forum "Java".

    Se devi riferirti ad una riga in particolare, colorala... non serve indicare tutti i numeri di riga, che poi si perde completamente l'indentazione e la formattazione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: [java]dubbio tipi array

    Originariamente inviato da felpone
    Salve,
    in questo esercizio mi si dice che l'errore e a riga 13 perchè non si può fare il cast a B di un oggetto di tipo A ma secondo me è già errore a riga 12 perchè aArray referenzia un oggetto array d tipo B e io assegno a aArray[0] un oggetto di tipo A. Che ne dite?

    codice:
    public class A {
       public void f() {
          System.out.println("f di A");
       }
    }
    
    public class B extends A {
       public void f() {
          System.out.println("f di B");
       }
       public void g() {
          System.out.println("g di B");
       }
    }
    e il seguente main program (nello stesso package di A e B):

    codice:
    public class es5 {
       public static void main(String[] args) {
          B[] bArray = new B[1];
          bArray[0] = new B();
    
          A[] aArray = new A[1];
          aArray[0] = new A();
    
          aArray = bArray;
          ((A)aArray[0]).f();
    
          aArray[0] = new A();   // Riga 12
          ((B)aArray[0]).f();    // Riga 13
       }
    }
    aArray ha tipo A[], non B[], quindi la riga 12 è lecita. Il tipo statico di una variabile, quello considerato dal compilatore, è indipendente da ciò a cui essa si riferisce ed è sempre il tipo specificato nella dichiarazione.
    effeffe

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.