Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    55

    Errore di compilazione, chiarimento

    Salve a tutti!
    mi aiutate a capire l'errore di compilazione che si verifica compilando questo codice?:
    codice:
    class Plant {
    String family;
    protected Plant(String f){
    family = f;
    }
    
    protected void stampa() {
    System.out.println("Plant: "+ family);
    }
    }
    
    class Tree extends Plant {
    public Tree(String f){
    super(f);
    }
    
    public Tree(){}
    
    public void stampa() {
    System.out.println("Tree: "+ family);
    }
    
    public static void main(String[] args){
    Plant a = new Tree("Olive");
    a.stampa();
    }
    }
    A.java:15: error: constructor Plant in class Plant cannot be applied to given types;
    public Tree(){}
    ^
    required: String
    found: no arguments
    reason: actual and formal argument lists differ in length
    1 error

    Il codice non è mio ma fa parte di un test sul quale mi sto esercitando...
    c'erano anche altri errori che sono riuscito a correggere ma questo mi sfugge il problema :/
    Qualcuno può aiutarmi? ringrazio in anticipo!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    La classe Plant non è provvista di un costruttore no-arg... ha un solo costruttore e richiede un parametro di tipo String.

    La classe Tree, che estende Plant, ha un costruttore no-arg... il quale è implementato vuoto... ciò significa che implicitamente viene richiamato il costruttore no-arg della superclasse (Plant) (come se ci fosse una sola istruzione super(); )... ma essendo che, come detto prima, la classe Plant non ha un costruttore no-arg, questo è un errore.

    Tu puoi anche avere un costruttore no-arg in Tree, ma questo deve obbligatoriamente richiamare il (unico) costruttore di Plant passandogli un valore String.


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    55
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    La classe Plant non è provvista di un costruttore no-arg... ha un solo costruttore e richiede un parametro di tipo String.

    La classe Tree, che estende Plant, ha un costruttore no-arg... il quale è implementato vuoto... ciò significa che implicitamente viene richiamato il costruttore no-arg della superclasse (Plant) (come se ci fosse una sola istruzione super(); )... ma essendo che, come detto prima, la classe Plant non ha un costruttore no-arg, questo è un errore.

    Tu puoi anche avere un costruttore no-arg in Tree, ma questo deve obbligatoriamente richiamare il (unico) costruttore di Plant passandogli un valore String.


    Ciao.
    charo! grazie per il chiarimento super veloce!

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.