PDA

View Full Version : [java]variabili tipo interfaccia


nuovoUtente86
24-06-2007, 01:38
Facendo una cosa del genere

Comparable c=new String("ciao");
secondo le regole si potrebbe chiare solo il metodo c.compareTo invece ho testato come compilati e funzionanti sia il metodo c.equals che c.toString.
Come mai avviene ciò?

ecco un po quello che si trova su tutti i tutorial

"Nell'uso delle interfacce in un programma, ricordarsi delle seguenti regole:
-Possiamo dichiarare una variabile indicando come tipo un'interfaccia:
-Non possiamo istanziare un'interfaccia:
-Ad una variabile di tipo interfaccia possiamo assegnare solo istanze di classi che implementano l'interfaccia:
-Su di una variabile di tipo interfaccia possiamo invocare solo metodi dichiarati nell'interfaccia (o nelle sue "super-interfacce").
"

andbin
24-06-2007, 10:58
Facendo una cosa del genere

Comparable c=new String("ciao");
secondo le regole si potrebbe chiare solo il metodo c.compareTo invece ho testato come compilati e funzionanti sia il metodo c.equals che c.toString.
Come mai avviene ciò?Perché Object è sempre alla base di tutto!
Lo spiega bene (anche se in modo più rigoroso ;) ) il Java Language Specification nella sezione §4.10.2 (http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.10.2).

nuovoUtente86
24-06-2007, 11:38
infatti chiamando ad esempio charAt da errore.