Salve gente. Sono un relativo neofita di Java, ed ho una domanda probabilmente stupida: in un programma d'esempio, ho creato una superclasse con una classe figlia. All'interno della classe figlia ho un metodo al quale mi interessa accedere; tuttavia, non riesco ad accedervi dalla classe padre, la cui invocazione mi ritorna un errore "Cannot find symbol". Tuttavia, ho notato che creando un metodo con lo stesso nome nella classe padre sono in grado di accedere al metodo che mi interessa all'interno della classe figlia, solo che io non voglio avere dei metodi ridondanti nella classe padre; come posso fare per accedere direttamente al metodo? Qua riporto il codice:
codice:
import java.awt.*;
import java.awt.event.*;
public class Albero extends java.applet.Applet {
protected static Albero melo=new Melo();
public static void main (String[] args)
{
pippo();
melo.omino();
}
public static void pippo() {
melo.StampaFrutto();
}
protected String frutto;
public Albero() {
frutto="generico";
}
protected void StampaFrutto() {
System.out.println(frutto);
}
}
la riga di codice incriminata è melo.omino(); e mi dà l'errore di cui sopra. La classe figlia:
codice:
public class Melo extends Albero
{
protected static String omino="Scimmia";
protected static String frutto="mela";
public static void main (String[] args)
{
omino();
}
static void omino() {
System.out.println(omino);
}
protected void StampaFrutto() {
System.out.println(frutto);
}
}
Il metodo StampaFrutto è presente sia nella superclasse che nella sottoclasse, e funziona; chiamando internamente alla classe Melo il metodo Omino non ci sono errori, ma facendo la stessa cosa dalla superclasse sì. Qualcuno può darmi una mano a capire cosa sta succedendo? Grazie!