Re: [Roma.pm] l'ereditarietà diseredata

Mattia Barbon mattia.barbon at libero.it
Mon Mar 1 15:44:00 CST 2004


Il Mon, 01 Mar 2004 14:14:41 +0100 Aldo Calpini <dada at perl.it> ha scritto:

  Ciao,

> riuscite a dirmi, guardando il seguente codice:
  premetto che ti ho preso in parola, per cui non ho eseguito
il codice per vedere cosa non andava, l'ho solo _guardato_, per cui
quanto segue potrebbero essere stupidaggini...

> a. cosa c'è di sbagliato
  Nella sottoclasse MyNumber, sovrascrivi (override, per capirci...)
il metodo 'add' con un altro metodo con una firma differente.
In sostanza stai creando una sottoclasse che pero` non e` un sottotipo,
nel senso che non e` sostituibile.

> b. qual'è il modo più elegante per correggerlo
  Non saprei, dato che si tratta di un esempio <traduzioni di "contrived">.
Io direi di cambiare la firma di 'add' in MyNumber facendola diventare uguale
a quella della superclasse.

> c. cosa si può fare per evitare simili errori
  Usare un linguaggio con un type system statico? SCNR...

> http://www.perl.it/blog/archives/000032.html
> 
> (cfr. anche http://www.perlmonks.org/index.pl?node_id=332883)

Ciao
Mattia





More information about the Roma mailing list