[Roba semplice :D] Aiuto con ereditarietà

di il
2 risposte

[Roba semplice :D] Aiuto con ereditarietà

Salve a tutti, sono uno studente di informatica al primo anno e da poco ho iniziato ad affrontare il linguaggio Java. Premetto che non ho mai programmato prima in java quindi non sono molto pratico.

Sto cercando di fare 3 classi per esercitarmi. Sono molto semplici: account, user, admin dove il primo serve per creare gli altri due e le sottoclassi hanno metodi sempre più "potenti". Come vedrete le classi non sono ancora finite poiché ho riscontrato un errore che mi blocca nella classe User. Non riesco a capire il problema. Mi dice che l'operatore non può essere usato con questo tipo. Sapreste aiutarmi gentilmente? Grazie mille in anticipo ^^

Inserisco i codici delle tre classi. Ditemi dov'è l'errore che sto impazzendo!! T_T

Account:
public class Account
{
public String name;
public String password;
    
public Account(String name, String password){
    this.name = name;
    this.password = password;
}
}
User:
class User extends Account
{
    
public User(){}
      
public void modName(String name) {
    this.name = name;
}

public void modPass(String password){
    this.password = password;
}

public String getName(){
    return this.name;
}

public String getPass(){
    return this.password;
}
    
}
Admin:
class Admin extends User {

}

2 Risposte

  • Re: [Roba semplice :D] Aiuto con ereditarietà

    Ciao, il problema sta nel fatto che nel costruttore della classe User tu non richiami il costruttore della superclasse (con la sintassi super(parametro1, parametro2, ...)), per cui di default il compilatore "ti inserisce" la riga per richiamare il costruttore di default:
    
    public User() {
        super(); // Inserita in automatico
        ... eventuali istruzioni ...
    }
    
    Poiché, però, la classe User estende la classe Account, che non ha un costruttore di default, ti viene segnalato il fatto che tenti di chiamare un costruttore che non esiste. Quello che devi fare, quindi, è richiamare un costruttore esistente, ad esempio:
    
    public User(String name, String password) {
    	super(name, password);
            ...
    }
    
  • Re: [Roba semplice :D] Aiuto con ereditarietà

    Ci stavo provando pure prima e non andava... ma ora va... :V
    Grazie mille!
Devi accedere o registrarti per scrivere nel forum
2 risposte