title: Classe anonima
text: # Classe anonima
  
  Nella programmazione orientata agli oggetti una classe anonima è un costrutto di un linguaggio di programmazione che permette di dichiarare e contemporaneamente istanziare una classe; è simile alla classe locale, tuttavia a differenza di quest'ultima non presenta un nome. Generalmente viene utilizzata quando c'è la necessità di creare una classe locale soltanto una volta. Le classi anonime forniscono la possibilità di sovrapporre i metodi di una superclasse, o di implementare i metodi di un'interfaccia, senza dover costruire una classe vera e propria. Le classi anonime hanno incluse nella loro definizione la costruzione e il primo uso della classe e si definiscono a partire da una classe o da una interfaccia preesistente.
  
  ## Caratteristiche
  
  Le classi anonime sono un particolare tipo di classe interna di java che possono essere definite nel corpo di un metodo. A differenza delle classi locali, le classi anonime sono delle espressioni che possono essere incluse come parte di un'espressione più ampia senza la necessità di dichiararle con un nome e la loro visibilità è limitata alla classe o al metodo nel quale sono state definite.
  
  Considerando che una classe anonima per definizione non ha un nome, risulta formalmente impossibile definirne un costruttore; nel caso in cui la classe ne richiedesse uno, è necessario utilizzare una classe locale.
  
  Le classi anonime non possono fare uso di membri statici (come proprietà, metodi o ulteriori classi interne) e non possono nemmeno definire interfacce interne, considerate anch'esse statiche. Le classi anonime possono usare variabili esterne alla loro visibilità solo se queste vengono dichiarate di tipo final.
  
  