[oop] constructor in interface?
Ozzie PHP
14/03/2014 22:17:50PHP hulp
27/11/2024 10:51:58- Raoul -
14/03/2014 22:42:21Nee, daar zou je setters en getters voor moeten gebruiken. Misschien wil je dat je class iets anders doet in de constructor en ergens anders de parameters instelt. (in dit geval met een getter of setter)
Gewijzigd op 14/03/2014 22:42:51 door - Raoul -
Ozzie PHP
14/03/2014 22:47:44>> Misschien wil je dat je class iets anders doet in de constructor en ergens anders de parameters instelt.
Ja, daar kwam ik dus ook achter... de constructor van een child class had een extra parameter en was daarom niet compatible met de interface! Geen constructors in interfaces dus :) Sloop 'm er gelijk weer uit :)
Thanks!
Ja, daar kwam ik dus ook achter... de constructor van een child class had een extra parameter en was daarom niet compatible met de interface! Geen constructors in interfaces dus :) Sloop 'm er gelijk weer uit :)
Thanks!
Wouter J
14/03/2014 23:02:13> de constructor van een child class had een extra parameter en was daarom niet compatible met de interface! Geen constructors in interfaces dus :) Sloop 'm er gelijk weer uit :)
Dit hoeft niet perse de rede te zijn dat je hem niet in je interface moet plaatsen. Met het interface wil je juist dat alles compatable is (dus die extra parameter zou op zijn minst een default value moeten hebben).
De grootste rede dat deze niet thuishoort in de interface is omdat een interface gemaakt is om aan andere objecten een contract vast te leggen: Deze methods heb ik. Hierbij heb je dus al de klasse gemaakt. Zodra je een klasse aanmaakt weet je al welke klasse je aanmaakt, dus heb je geen interface check nodig.
Dit hoeft niet perse de rede te zijn dat je hem niet in je interface moet plaatsen. Met het interface wil je juist dat alles compatable is (dus die extra parameter zou op zijn minst een default value moeten hebben).
De grootste rede dat deze niet thuishoort in de interface is omdat een interface gemaakt is om aan andere objecten een contract vast te leggen: Deze methods heb ik. Hierbij heb je dus al de klasse gemaakt. Zodra je een klasse aanmaakt weet je al welke klasse je aanmaakt, dus heb je geen interface check nodig.
Ozzie PHP
14/03/2014 23:10:48Ja, ik dacht dus dat het handig was om aan te geven dat bij een class die deze interface ondersteunt data moet worden meegegeven via de contructor:
Alleen toen had ik dus een child class met deze constructor:
En toen ging het dus gelijk al mis :)
Alleen toen had ik dus een child class met deze constructor:
En toen ging het dus gelijk al mis :)