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

    Esercizio su overriding e compatibilità

    Salve a tutti, sono all prime armi con java e sto tentando di trovare un errore in questo esercizio ( che consiste proprio nel trovare l errore ), qualuno potrebbe auitarmi ?
    codice:
    //esercizio7.java
    class B {
    	protected int c;
    	void stampa() {
    		System.out.println("c: " + c );
    	}
    }
    
    class D extends B {
    	protected int e;
    	void stampa() {
    		super.stampa();
    		System.out.println("e :" + e );
    	}
    }
    
    public class Esercizio7 {
    	public static void main(String[] args) {
    		B b = new B(); 	b.stampa();
    		B b2 = new D(); b2.stampa();
    		D d = new D(); 	d.stampa();
    		D d2 = new B();	d2.stampa();
    	}
    }
    Gli errori restituiti in fase di compilazione sono 2:
    C:\Users\Alfio\Desktop\sorgJava\esercizio7_2>javac esercizio7.java
    esercizio7.java:17: error: class Esercizio7 is public, should be declared in a file named sercizio7.java
    public class Esercizio7 {

    esercizio7.java:22: error: incompatible types D d2 = new B(); d2.stampa();
    required: D
    found: B
    2 errors

  2. #2
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Il primo messaggio che ti dice penso sia riferito al fatto che stai dichiarando tante classi in un file solo.Si può fare,ma non è buona norma.Stai usando qualche IDE per compilare?

    Altra cosa:

    codice:
    D d2 = new B();
    B è la superclasse di D, D è la sottoclasse di B.
    E' valido il polimorfismo di sottotipo:
    Ogni riferimento di un tipo può contenere un oggetto del suo tipo, o di un suo sottotipo, ma non è valido il contrario.
    Ricorda che la gerarchia si può scendere, ma non si può risalire.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Il primo errore è perche una classe dichiarata pubblica deve essere contenuta in un file dallo stesso nome.

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.