Abstract methodes door laten erven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP developer (Laravel/Vue.js)

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

Senior .NET developer

Functie Als Senior .NET ontwikkelaar ga jij aan de slag in ons Research & development team. Ons team bestaat uit 17 collega’s! Wij zijn momenteel druk bezig met het opzetten van een geheel nieuwe architectuur voor een nieuw product. Hierbij maken wij o.a. gebruik van VS2022 en .NET 6.0. Jouw functie is dan ook voornamelijk backend georiënteerd bij ons. Aangezien wij meetapparatuur ontwikkelen voor de chemische industrie is het ook erg belangrijk om kwalitatief hoogwaardige software te ontwikkelen voor de besturing hiervan. Verder ben jij verantwoordelijk voor het designen, implementeren en testen van nieuwe features. Ook zorg jij voor toekomstbestendige

Bekijk vacature »

Senior PHP developer

Functie Jouw werkzaamheden zullen grotendeels bestaan uit het in teamverband ontwerpen, vernieuwen en door ontwikkelen van het systeem. Het is echt back-end werk (bijvoorbeeld het doorontwikkelen van een API) en dit moet je dan ook liggen. Ze zijn niet persee gebonden aan talen of tools maar gebruiken graag de technieken die het beste aansluiten op de gegeven oplossing. Voor nieuwe (versies van) componenten maken ze veelal gebruik van Go(lang). Bij aanpassingen aan bestaande onderdelen gebeurt dit in PHP en C++. Het team is heel divers, er hangt een relaxte sfeer en ze organiseren regelmatig leuke music nights, game nights e.d.

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een gewaardeerde werkgever in regio Oosterhout zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je brengt de aanpassingssuggesties van klanten in kaart, om

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Software Developer C# / ASP .Net

Functie omschrijving Ben jij een software ontwikkelaar die bekend is met termen ASP .NET, C# en SQL? Lees dan snel verder! Voor een bedrijf binnen de agrarische sector zijn wij namelijk op zoek naar een zelfstandige, enthousiaste en proactieve Software Developer die open staat voor een afwisselende functie met veel uitdaging. Binnen deze organisatie ben jij als Software Developer samen met één andere collega verantwoordelijk voor de ontwikkeling en modificatie van het support en controle programma dat binnen dit bedrijf gebruikt wordt. Hierbij draag jij bij aan de vertaling van klantwensen naar effectieve softwareoplossingen. Daarnaast ben je verantwoordelijk voor: Schatten

Bekijk vacature »

(Junior) Back-end Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Altijd al willen werken bij een organisatie, die maatwerk applicaties bouwt, die echt impact hebben in de maatschappij? Dit is je kans. Voor een kleine organisatie in de regio van Eindhoven ben ik op zoek naar een C# Ontwikkelaar. Jij gaat aan de slag met de ontwikkeling van maatwerk software en applicaties. Deze organisatie werkt voor grote organisaties in Nederland, maar ook voor het MKB. De projecten waar je aan gaat werken zijn erg divers, waardoor je werk uitdagend blijft en je erg veel kan leren. Verder ga je aan

Bekijk vacature »

Creatieve Front-end developer gezocht!

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

.NET developer

Functie Heb jij veel kennis van ASP.NET Webforms en wil jij juist de overstap maken naar ASP.NET Core? Wij zijn per direct op zoek naar een ervaren .NET Webdeveloper die met ons samen ons platform wilt herschrijven van ASP.NET Webforms naar ASP.NET Core. Voor jou de unieke kans om met ons samen te innoveren en kennis op te doen van de nieuwste technieken binnen de Microsoft Stack. Wij hebben een development team met 10 IT specialisten bestaande uit onder andere 4 backend .NET developers en twee front-end developers. Wij zijn continu bezig om ons als team en bedrijf te blijven

Bekijk vacature »

Medior Mobile Developer iOS Amsterdam

Functie What will you be doing as Mobile Developer? As an iOS app developer you will work in a multidisciplinary team of app developers, web developers and designers. You will work on world-class apps that will be used by thousands of people. There is a lot of room for self-development on a technical and personal level. Together with the rest of the team you develop in the newest techniques and you go for the best quality. We work with Kotlin Multiplatform Mobile to develop hybrid apps and we guarantee quality with peer reviews, unit testing and we use a CI/CD.

Bekijk vacature »

Back end Node.js developer

Functie Het ontwikkelteam bestaat momenteel uit 5 (back-end) Developers, 2 systeembeheerders, 1 DevOps engineer, 1 Tech Lead en 2 Scrum Masters. Samen wordt er doorontwikkeld aan twee SaaS-platformen die in een hoog tempo doorontwikkeld moeten worden. Omdat innovatie een belangrijk speerpunt binnen de organisatie is, wordt er ook continu naar snellere en slimmere oplossingen te bedenken en realiseren. Als Back-end Developer hou jij je dagelijks bezig met vraagstukken zoals: API-development, high volume datastromen, het ontwikkelen van Bots aan de hand van A.I. Daarnaast denk en werk jij mee aan de onlineapplicaties voor klanten. Er wordt zelfstandig en in teamverband gewerkt

Bekijk vacature »

WordPress & Azure Developer

Dit ga je doen Zowel front- als back-end development aan de online website omgeving; Het up-to-date houden van alle WordPress-sites; Koppelingen maken tussen applicaties; Meedenken en adviseren over verbeteringen; Development door middel van WordPress, Javascript, HTML en CSS; Werken binnen Scrum/Agile team. Hier ga je werken Voor een grote overheidsinstelling in Den Haag zijn wij opzoek naar een WordPress developer, met kennis en ervaring op het gebied van Azure. De organisatie zit in een grote transitie waarbij de gehele website/online omgeving vernieuwd zal gaan worden. Binnen dit Scrum/Agile team ben je verantwoordelijk voor deze grote migratie/ombouw van de omgeving. De

Bekijk vacature »
Johan K

Johan K

19/05/2010 09:43:16
Quote Anchor link
Ik heb een vraagje over het door laten erven van methodes in classes, en hoe ik dit eventueel mogelijk zou kunnen maken. Ik heb hier een paar dagen een topic voor geopend, er was alleen niet op gereageerd en nu is de context iets anders. Dus vandaag maar een nieuwe topic.

Dit is een voorbeeld van een classe hierarchy dat ik wil berijken.
Ik weet alleen niet of dit "professioneel" mogelijk is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

abstract class Connection{
    abstract function error();
}


class FTP extends Connection{
    private $pError;

    function
error(){
        return $pError;
    }
}


interface iDatabase{
    function
query( $sql );
    // en nog een hele waslijst met standaard methodes.
}

abstract class Database extends Connection{
    abstract function error(); // Here, it shall error. Function must contain body, Noooh!
}

class MySQL extends Database implements iDatabase{
    function
error(){
        return mysql_error();
    }
    function
query( $sql ){
        return mysql_query( $sql );
    }
}


class MySQLi extends Database implements iDatabase{
    function
error(){
        return mysqli_error();
    }
    function
query( $sql ){
        return mysqli_query( $sql );
    }
}


class PostGreSQL extends Database implements iData //... etc

?>


Dit is alleen niet mogelijk omdat "Database" een body verwacht op de methode error.
Is er een mogelijkheid om dit wel te laten werken, zonder daarvoor nog een andere methode te maken en door te linken zoals "getError()",

Door personelijke onstandigheden heb ik momenteel thuis geen Internet, ik heb alleen de mogelijkheid om dit op een andere locatie te doen, dus verwacht niet per direct antwoord.

Alvast bedankt.
Gewijzigd op 19/05/2010 10:24:12 door Johan K
 
PHP hulp

PHP hulp

15/05/2024 12:43:35
 
Jelmer -

Jelmer -

19/05/2010 10:10:56
Quote Anchor link
Mijn PHP (5.3.nogwat) geeft een iets duidelijkere foutmelding: PHP Fatal error: Can't inherit abstract function Connection::error() (previously declared abstract in Database). En inderdaad, wanneer ik Connection::error weglaat dan gaat het goed. Die eis dat alle classes die Database extenden een method genaamd error() moeten hebben zit al in Connection. En die eis kan je niet overschrijven.
 
Johan K

Johan K

19/05/2010 10:22:31
Quote Anchor link
Ik heb een van de nieuwste PHP versies, 6.0.#, stom dat ik dat er niet had bij vermeld.
Grappig dat je dit ook even heb uitgetest, heb deze code met de losse hand geschreven. Had wel een syntax errortje verwacht.

Ik begrijp deze error wel, ik moet een body "{}" op de error methode in classe Database declareren, maar dan kan de methode niet overschreven worden, toch? Ik had namelijk wel iets gelezen over de final keyword.
Ik begin de laatste tijd echt in te zien hoe handig het verlengen van een classe is, dus ik weet er nog niet alle "tricks".

En bedankt voor je snelle reactie, ik ga het thuis even proberen want ik had niet verwacht dat hij geen error zou geven als hij gedeclareerd is in de kinderen van Database.

Misschien nog iets, bestond of bestaat er nog ergens een optie in PHP zoiets als "required"?
Dus dat deze classes eventueel worden geladen standaard met __autoload, voordat ze daadwerkelijk gebruikt worden.
Zou handig zijn voor error handeling classes, met set_*_handler(array( 'class', 'static method' ) );

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php class FooBar requires Foo, Bar extends MehBar implements iBar{} ?>
Gewijzigd op 19/05/2010 10:38:53 door Johan K
 
Jelmer -

Jelmer -

19/05/2010 10:37:15
Quote Anchor link
Database extends Connection, en daarmee erft hij ook de eisen van Connection, namelijk dat er een method error() moet zijn. Normaal gesproken moet de class Database daaraan voldoen, maar Database is ook abstract. PHP weet dan dat Database nooit een instantie kan worden, en daarom hoeft het niet direct alle eisen van Connection waar te maken. Alleen een class die daadwerkelijk een instantie kan worden, de uiteindelijke classes zoals PgSQL, moeten dus voldoen aan alle eisen van de bovenliggende classes in die hiërarchie.

Als Database abstract is, hoef je de method niet te voorzien van een body. (mits je er het abstract keyword voor zet) Maar een class die Database extends, PgSQL bijv, en die niet abstract is, moet wel aan alle eisen voldoen. En die moet dus wel een method error met een body hebben.

PS: Gebruik je PHP 6, of gewoon de laatste build van PHP's trunk? Want PHP 6 zelf is op het moment niet in ontwikkeling. Volgens mij is de trunk tegenwoordig weer gebaseerd op PHP 5.3.
 
Johan K

Johan K

19/05/2010 10:44:16
Quote Anchor link
Heel erg bedankt voor de verduidelijking, helpt erg.
En persoonlijk weet ik niet precies wat voor build het is, thuis heb ik geen Internet, dus ik had aan een vriend van mij gevraagd of hij het even op een jumpdrive kon zetten, en simpelweg gewoon geinstalleerd. Hij zei dat het versie 6 was, dus daarop vertrouwde ik op.

Ik zal wel voor je kijken, maar daar kan ik vandaag geen antwoord op geven.
Gewijzigd op 19/05/2010 10:47:48 door Johan K
 
Willem Jan Z

Willem Jan Z

19/05/2010 10:53:45
Quote Anchor link
Enkel ter informatie:
Op dit moment is er nog geen beslissing gemaakt over de volgende versie van PHP. Het kan 5.4 zijn, 6.0 maar ook 7.0. Heeft onder andere te maken met Unicode support wat een beetje drama is geworden binnen het ontwikkelteam.
Waarschijnlijk heb je dus gewoon een snapshot van de trunk.

Deze informatie weet ik via de internals list van PHP. Heb dus niks met de ontwikkeling ervan te maken :)

Verder ontopic:
Je implement overal iDatabase, maar voor zover ik nu zie is het logischer om de abstracte class iDatabase te laten implementeren.

Over het 'final' keyword. Als je een class maakt, met een final method, kan je bij een extend van die class, die specifieke method niet overrulen. Je kan ook een complete class dus final maken, zodat van die class geen extend gemaakt kan worden,
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.