[pugMI] PHP, interfacce e classi astratte

Daniele Bartocci net02.it a gmail.com
Lun 15 Lug 2013 05:41:48 PDT


https://bugs.php.net/bug.php?id=31207

Non è un bug, non ti permette di ridefinire il metodo dell'interfaccia
poiché superfluo (probabilmente ha a che fare con l'effettiva
implementazione lato engine di interfacce e classi astratte).
Puoi semplicemente evitare la dichiarazione di doSomething() in
AMyAbstractperché comunque
MyImp implementerà IMyInterface per "ereditarietà" - e quindi ti darà tutti
gli errori del caso qualora non implementassi tutti i metodi di IMyInterface
.

Daniele


Il giorno 15 luglio 2013 14:05, Gabriele Tondi <info a gabrieletondi.it> ha
scritto:

> Ciao a tutti!
>
> mi sono scontrato con questo problema, che riscontro su PHP 5.3.3.7
>
> In pratica, ho questi tre elementi...
>
> interface IMyInterface {
>   public doSomething();
> }
>
> abstract class AMyAbstract implements IMyInterface {
>   public abstract doSomething();
> }
>
> class MyImp extends AMyAbstract {
>   public doSomething() {
>     return 'done';
>   }
> }
>
> PHP 5.3.3.7 si arrabbia, perchè non vuole che il metodo doSomething sia
> astratto...
> Su PHP 5.3.14 invece non ho problemi, idem su 5.4.4
>
> Ho verificato ed in linguaggio più OOP come c# è possibile fare ciò,
> quello che non riesco a capire è se in php non è permesso (o consigliabile)
> in generale, oppure se si tratta di un problema di quella versione!
>
> Vi siete già scontrati con un problema di questo tipo?
>
> A presto!
> Gabriele
>
>
> -----------------------------------------------------------------------------
>
> Tondi Gabriele - web and mobile software architect
>
> *mail:* info a gabrieletondi.it
> *web:* www.gabrieletondi.it
> *mobile:* 392 54 50 560
> *skype: *gabrieletondi
>
> *In ottemperanza alla Legge 196/2003 sulla tutela dei dati personali, le
> informazioni contenute in questa mail sono di natura confidenziale e si
> devono intendere ad uso esclusivo della persona o della Società cui è
> destinato. Se chi legge questo messaggio non è il destinatario o
> l’incaricato
> per la consegna del messaggio al destinatario, non deve assolutamente
> copiare, divulgare, distribuire o in qualsiasi modo utilizzare le
> informazioni contenute in questa mail.Nel caso in cui aveste ricevuto
> questa
> mail per errore, vogliate avvertire il mittente al più presto a mezzo posta
> elettronica e distruggere il presente messaggio.
>
> According to Italian Law 196/2003 concerning privacy, the information
> contained in this mail is confidential and is intended for the addressee
> only. If you are not the correct recipient, please note that any use,
> dissemination or copy of this document/information is strictly prohibited.
> If you have received this message in error, you should destroy it and
> please
> notify us immediatly by e-mail.*
>
>
> _______________________________________________
> Milano mailing list
> Milano a ml.grusp.org
> http://ml.grusp.org/listinfo.cgi/milano-grusp.org
>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://ml.grusp.org/pipermail/milano-grusp.org/attachments/20130715/043aba4b/attachment-0002.htm>


Maggiori informazioni sulla lista Milano