Eccomi qui con una possibile soluzione.
Allora, l'operazione di assegnazione ( = ) ha il compito di prendere l'elemento a destra, trasformarlo nell'oggetto da lui rappresentato e tentare di metterlo nel'elemento a sinistra.
Quindi un'operazione simile
String prova = "abcde";
prende la string "abcde" la trasforma in una Stringa ( in quanto il compilatore sa che " " rappresentano una Stringa ) e cerca di assegnarla alla classe String.
Quindi il tutto viene fatto da un operatore.
Ora....come fare a creare una nuova classe Stringa.
Ti faccio un esempio prima di proseguire.
Allora, la prima assegnazione non da problemi, dato che per ereditarietà la classe Cane_di_pippo è anche una classe Pippo, quindi nessun problema ad effettuare questa assegnazione, mentre questo non accade per la classe Paperino che non estende la classe Pippo.codice:class Pippo{ ... } class Cane_di_pippo extends Pippo{ ... } class Paperino{ ... } //all'interno di una classe main Cane_di_pippo cdp = new Cane_di_pippo(); Pippo pippo = cdp; pippo = new Paperino(); ...
Questo per dirti che....
MiaString prova = "abcde";
Puoi creare la classe MiaString e riuscire ad ottenere una cosa simile se e solo se riesci ad implementare a MiaString una classe estesa di String.
e l'unica classe che String estende è Object, quindi se riesci a lavorare con Object e sappi checodice:public final class String extends Object implements Serializable, Comparable, CharSequence
è un'operazione perfettamente lecita....dovrai poi implementare anche le interfaccie che ti permettano di lavorare correttamente con i tipi di Stringa che vuoi implementare....codice:Object test = "abcde";
Sempre a disposizione.![]()

Rispondi quotando