Salve! Rieccomi qui con un'altra domanda su java. Come ho già detto nella precedente discussione che ho aperto, vi prego di scusarmi se faccio domande la cui risposta è ovvia, ma sono alle prime armi con java e arrugginita per quanto riguarda la programmazione, che non prendo più in mano da anni.
Dunque, il mio problema è il seguente:
Ho una classe Quadrilateri:
public class Quadrilateri {
// lati del quadrilatero
private double l1,l2,l3,l4;
public Quadrilateri() {
...
}
public Quadrilateri(double a,double b,double c,double d,){
...
}
public double perimetro() {
return this.l1+this.l2+this.l3+this.l4;
}
e una sua sottoclasse Rettangoli:
public class Rettangolo extends Quadrilateri {
public Rettangolo (double a,double b) {
...
}
public double area(){
return this.l1*this.l2;
}
}
Ecco: il riferimento a l1 e l2 in Rettangoli (this.l1 e this.l2) mi dà errore in compilazione, se l1 e l2 sono dichiarati, in quadrilateri, private (cosa che mi sembra corretta perché vorrei nascondere all'esterno della classe quadrilateri la struttura interna della classe stessa).
Pensavo però che la classe Rettangoli, che è 'figlia' di Quadrilateri, ereditasse dalla 'mamma' metodi e variabili, anche se private. Non è così?
Come si fa allora a rendere nascosti all'esterno i dettagli implementativi di una classe ma a renderli utilizzabili dalle classi figlie? Mi devo costruire dei metodi pubblici: getl1, getl2... per leggere i contenuti di tali variabili?
O c'è un altro modo?
Grazie!