Abstract methodes door laten erven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Belastingdienst - Freelance Senior Cobol Applicati

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 7 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Functieomschrijving: In de applicatie ETM zijn nu de inningsvoorzieningen voor ongeveer 25 aangifte- en aanslagmiddelen opgenomen. ETM is een extern aangeschafte service en het huidige contract met leverancier Oracle loopt af op 31-12-2022. Het programma uitfaseren ETM heeft als doel om vervanging te realiseren waarmee alle nu in gebruik zijnde ETM ondersteuning wordt overgenomen in nieuwe Inningsvoorzieningen om de continuïteit van de inningsprocessen te waarborgen. Eén van de inningsvoorzieningen die voor het einde van 31-12-2022

Bekijk vacature »

PHP back-end developer gezocht!

Functie Werk je liever zonder druk en keiharde deadlines maar met de focus op kwaliteit? Dan kom je hier op de juiste plek terecht! In Het team bestaat momenteel uit 12 developers, hiernaast werken er collega’s van front-end, UX maar ook marketing/sales en support. In iedere sprint ontwikkel je samen functionaliteiten met als uitdaging om de klanten de beste gebruikerservaring te bieden. Ze bieden een werkplek waar je jezelf kunt blijven ontwikkelen, en mee te werken aan zowel bestaande als nieuwe mogelijkheden. Eisen • HBO werk- en denkniveau (ze kijken niet naar een papiertje) • Je denkt graag mee over

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder voor het financiele domein op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

Frontend Developer

Functieomschrijving Voor de NIPV zijn wij opzoek naar een Frontend Developer. Als Frontend Developer ga jij aan de slag om dashboards te bouwen vanuit het datawarehouse. Dit stelt NIPV in staat om snel en eenvoudig bij correcte bedrijfsvoeringsinformatie te kunnen. Je ontwikkelt dashboards in PowerBI, publiceert en onderhoud die, verzameld en verwerkt feedback in overleg met het ontwikkelteam. Naast dashboards ontwikkel en onderhoud je een datamodel in Excel waarmee adviseurs, controllers en analisten in staat worden gesteld om de gegevens uit de dashboards te raadplegen en anders te filteren of bepaalde gegevens nader te verfijnen, zodat verdiepende vragen kunnen worden

Bekijk vacature »

Database developer - SQL

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je sluit aan bij meetings en brengt het gehele logistieke proces in kaart. Vervolgens ga je als lead developer aan de slag om de klus te klaren. Je stuurt het junior developer team en helpt, zo nodig,

Bekijk vacature »

.NET developer

Functie Als .NET ontwikkelaar start jij in een multidisciplinair team met 7 ontwikkelaars. Dit team is verdeeld onder Front-end ontwikkelaars en backend developers. De backend developers werken voornamelijk aan desktop applicaties in combinatie met backend systemen. Hier ga jij dus ook mee aan de slag! Hierbij wordt voornamelijk gebruik gemaakt van C# .NET, WPF, UWP, XAML en MVVM. WPF, UWP, .NET Core, Azure Devops en Entity Framework. WPF en UWP worden dan ook voornamelijk gebruikt voor de user interface van de desktop applicatie. Het development team is dan ook erg gedreven m.b.t. het ontwikkelen van vooruitstrevende en innovatieve horeca automatiseringsoplossingen.

Bekijk vacature »

Lead C++ Developer

De rol van Lead C++ Developer Als Lead C++ developer bij KUBUS word je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de desktop applicaties van BIMcollab, ons platform voor 3D model-validatie en issue-management bedoeld om de kwaliteit van 3D design-modellen voor gebouwen te verbeteren. Betere 3D modellen leiden tot betere gebouwen, dus zo draag je bij aan verduurzaming van de gebouwde omgeving met slimmer gebruik van materialen, minder verspilling en energie-efficiënte gebouwen. Een goede gebruikerservaring staat bij ons hoog in het vaandel; we gaan in onze ontwikkeling voor innovatie en kwaliteit. In je rol als

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

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 »

Junior .NET Software Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

Software Developer C# - Deventer

Software Developer C# – Deventer Bijdragen aan de toekomst van het onderwijs! Ben jij op zoek naar een dynamische omgeving waar vol enthousiasme wordt gewerkt aan software voor interactieve dashboard- en analysetoepassingen ter verbetering van het onderwijs? Dan zijn wij het bedrijf voor jou! TIG is een bedrijf met een informele en ondernemende werksfeer, waarbij goede ideeën snel leiden tot concrete acties. Wij zijn een software ontwikkelorganisatie en focussen ons op het ontwikkelen en implementeren van oplossingen voor het leveren van managementinformatie, datavisualisatie en analyses voor het onderwijs. Met onze dashboard- en analyseoplossingen zetten scholen gegevens om naar betekenisvolle informatie.

Bekijk vacature »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

Bekijk vacature »

C# .NET Developer

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Bennekom gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Ontwikkelaar MS Dynamics 365 Projecten

Samengevat: Deze werkgever is de kwaliteitsdienst in de tuinbouwsector. Ben jij een ervaren ontwikkelaar? Heb jij ervaring met Ms Dynamics 365 BC? Vaste baan: Ontwikkelaar Ms Dynamics 365 BC ICT MBO 3.500 - 5.000 Ontwikkelaar Ms Dynamics 365 BC Ons bedrijf bewaakt en bevordert de kwaliteit van producten, processen en ketens in de tuinbouw. Wij kenmerken zich door openheid, ruimte voor initiatief, collegialiteit en zelfontplooiing. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Functie: Voor de vacature als Ontwikkelaar Ms Dynamics 365 BC Roelofarendsveen MBO

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

23/11/2024 11:10:02
 
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.