Allora ho un problema con vb.net e il polimorfismo. Spiego in breve:
ho una classe "stampante" e una sottoclasse "stampanteSeriale". La classe stampante ha un metodo "inviaComando" che invia il messaggio desiderato alla stampante tramite socket. Questo metodo è dichiarato come Protected Overridable. Sempre all'interno delal classe stampante ho altri metodi che utlizzano inviaComando per svolgere la loro funzione (es. il metodo controllaStato invia un particolare comando tramite il metodo inviaComando e mi ritorna poi il risultato).
Nella sottoclasse stampanteSeriale ho un metodo inviaComando che fa l'override dell'inviaComando della superclasse. Il metodo è dichiarato come Protected Shadows (utilizzo shadows perchè in questo caso il metodo mi restituirà un tipo di dato differente rispetto al metodo della superclasse). Ovviamente faccio questo override perchè l'oggetto stampanteSeriale dovrà comunicare attraverso la porta seriale e non tramite socket (come invece fa il padre)
Ora quando io creo un oggetto di classe stampanteSeriale e richiamo il metodo controllaStato (metodo ovviamente ereditato dalla superclasse) sto maledetto mi va ad usare il metodo inviaComando della superclasse, anzichè quello shadow della classe stampanteSeriale!
Come cazzo si permette di farmi questo affronto??? Dove sto sbagliando??
Una probabile soluzione sarebbe fare l'override anche dei metodi che utlizzano inviaComando, ma sarebbe stupido perchè tanto varrebbe non ereditare nulla :/
HELP PLEASE!