Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107

    costruttore classe figlia

    ciao a tutti ho un problema con la classe figlia di una classe da me creata, questa è la classe madre:
    codice:
    package Torri;
    public abstract class Blocco {
    
        private int numero;
        private String colore;
        
        public Blocco(int numero, String colore){
            this.numero=numero;
            this.colore=colore;
        }
    questa la classe figlia

    codice:
    package Torri;
    public class Jolly extends Blocco{
        
        public Jolly(int numero){
            String s = "oro";
            super(numero, s);
        }
    l'errore che mi da è:
    Jolly.java:4: error: constructor Blocco in class Blocco cannot be applied to given types;
    public Jolly(int numero){
    ^
    required: int,String
    found: no arguments
    reason: actual and formal argument lists differ in length
    Jolly.java:6: error: call to super must be first statement in constructor
    super(numero, s);

    io sapevo che data l'erdeitarietà il costruttorre di una classe figlia possa essere anche diverso da qeullo della classe madre, come spiegatomi nell'esempio Quadrato-Rettangolo

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    L'istruzione super (che richiama il costruttore della classe base) deve obbligatoriamente essere la prima istruzione del costruttore della figlia.

    codice:
        public Jolly(int numero){
            super(numero, "oro");
            String s = "oro";
        }

    Avendo trovato un'istruzione diversa da super, il compilatore ha provato ad aggiungere automaticamente l'istruzione super() (richiamo del costruttore no-args)... il ché ha scatenato l'errore perchè la classe base non ha un costruttore no-args.


    Ciao.
    Ultima modifica di LeleFT; 11-02-2015 a 17:33
    "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
    Feb 2015
    Messaggi
    107
    ok quindi tu cosa mi consigli di fare? tenendo conto che nel costruttore va specificato solo il numero?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Te l'ho postato il costruttore corretto... poi vedi tu se ti serve per davvero la variabile (locale) "s" più avanti nel costruttore... se non ti serve, butta via la seconda riga.


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    okok grazie mille della risposta!

Tag per questa discussione

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.