Salve a tutti,
sono agli inizi con Java,vengo da Python e C ed � la prima volta che mi cimento in una programmazione orientata agli oggetti anche se ho gi� trattato le strutture in C.
Forse sar� che non mi � stato spiegato molto bene questo linguaggio ma di fatto mi trovo in difficolt� nel muovermi tra dichiarazioni di variabili di tipo static, protected,final ecc...
Mentre mi � chiara la distinzione tra variabili di tipo oggetto e variabili normali, int,float,char ecc...(ringrazio il C).
Supponiamo di avere una classe e una sottoclasse che � estensione della prima (estends) quindi eredita i metodi, costruttore ecc...
Ma se io nella sottoclasse dichiaro un campo come final, come faccio ad inizializzarlo nella principale?
Esempio :

Ho la classe Figure e una sottoclasse triangolo.
Supponiamo che i lati del triangolo siano immutabili e io li dichiari con" final double " lato_a,lato_b,lato_c.
Ora nel main di Figure voglio dichiarare un oggetto di tipo triangolo e inizializzare il valore dei lati.
Come si fa ?

E perch� le variabili con cui definisco l'oggetto Figure mi viene detto dal compilatore di dichiararle come static ?
Esempio :

Ho dichiarato delle variabili :

final String Tipo;
static double perimetro;
static double area ;

public Figure ( String Tipo,double perimetro ,double area) {

this.Tipo = Tipo;
this.perimetro = perimetro;
this.area = area;

}
( metodi get e set vari
.
.
.)
Tipo,perimetro e area sono comuni a tutte le sottoclassi di Figure (tutte le figure rientrano in una categoria o Tipo e hanno un'area e un perimetro).
Perché ho dovuto dichiarare le variabili come static ? ( mi obbligava il compilatore).
Se vengono dichiarate come static non sono anche final ? In questo caso se volessi cambiare i lati del mio triangolo l'area rimarrebbe immutabile e non avrebbe senso ( non posso fare un set area ).
Non ci sto capendo niente con Java .