Ridefinizione metodi

di il
2 risposte

Ridefinizione metodi

Salve a tutti sono nuovo del forum.
Volevo postarvi un programmi semplice in java che ho scritto:

class A
{
int x;
A(int y)
{
x=y;
}
void visualizzazione()
{
System.out.println(x);
}
}
class B extends A
{
int j;
B(int k)
{
j=k;
}
void visualizzazione()
{
System.out.println(j);
}
}
class Pippo
{
public static void main(String args[])
{
A a=new A(1);
B b=new B(2);
a.visualizzazione();
b.visualizzazione();
}
}

Questo programma dovrebbe ridefinire i metodi ( quando hanno lo stesso nome e ed uguali numero e tipo di argomenti ). Volevo sperimentare su questo pgm la differenza con il sovracaricamento dei metodi ( che si ha quando numero e/o tipo di argomenti sono differenti. ) All'esecuzione mi da' :
Pippo.java:17: cannot find symbol
symbol : constructor A()
location : class A
{
1 error

Mi potete aiutare ? Grazie.

2 Risposte

  • Re: Ridefinizione metodi

    Ciao,
    puoi risolvere in due modi
    o crei un costruttore della classe A senza parametri impostando la variabile y a 0 altrimenti nel costruttore di B devi invocare il costruttore della superclasse passando un numero come arametro. questo perchè al momento della creazione della classe B, essendo un estensione di A richiama il costruttore di default di A ma non essendoci ti crea problemi. ecco una possibile soluzione


    class A
    {
    int x;
    A(int y)
    {
    x=y;
    }
    void visualizzazione()
    {
    System.out.println(x);
    }
    }
    class B extends A
    {
    int j;
    B(int k)
    {
    super(k);
    j=k;
    }
    void visualizzazione()
    {
    System.out.println(j);
    }
    }
    public class Pippo
    {
    public static void main(String args[])
    {
    A a=new A(1);
    B b=new B(2);
    a.visualizzazione();
    b.visualizzazione();
    }
    }
  • Re: Ridefinizione metodi

    Grazie
Devi accedere o registrarti per scrivere nel forum
2 risposte