Le due istruzioni che hai scritto costruiscono un oggetto LinkedList<String>
per contenere un elenco di stringhe, quindi assegnarlo a una variabile. La differenza è nel tipo di variabile.
Assegnando la LinkedList<String>
a una variabile di tipo Queue<String>
, si può accedere solo metodi nella LinkedList
che sono disponibili nell'interfaccia Queue<String>
, che include il supporto per l'accodamento ed elementi accodamento. Ciò sarebbe utile se fosse necessario scrivere un programma che usasse una coda per varie operazioni e volesse implementare quella coda usando un elenco collegato.
Assegnando la LinkedList<String>
a una variabile di tipo List<String>
, si può accedere solo metodi nella LinkedList
che sono disponibili nell'interfaccia List<String>
, che sono normali operazioni per mantenere una sequenza di elementi. Ciò sarebbe utile, ad esempio, se fosse necessario elaborare un elenco di elementi che potrebbero crescere e restringersi ovunque.
In breve, le due linee creano lo stesso oggetto ma intendono utilizzarle in modi diversi. Si dice che ha bisogno di una coda supportata da un elenco collegato, mentre l'altro dice che ha bisogno di una sequenza generale di elementi supportati da un elenco collegato.
Spero che questo aiuti!
@ BheshGurung- Sei sicuro?Sono abbastanza sicuro che entrambi siano codici Java legali. – templatetypedef
Non vengono compilati perché mancano a(), non perché l'assegnazione sarebbe illegale :) – Affe
ok() è stato corretto –