Abstract Class beschrijving

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Francoi gckx

Francoi gckx

26/07/2013 12:21:04
Quote Anchor link
Vraag van de week, misschien een leuk concept voor op de site:P

Ik concentreer mij nu volledig op oop ik weet de basis een beetje heb alleen nog geen afgeronde project

Wat houdt abstract classes in, wanneer gebruik je het?
 
PHP hulp

PHP hulp

31/01/2025 00:36:05
 
Koen Vlaswinkel

Koen Vlaswinkel

26/07/2013 12:31:46
Quote Anchor link
Een abstracte class heeft één of meerdere methoden die abstract zijn, en daardoor niet kan instantiëren. Als een voorbeeld heb je een class Shape. Als je iemand vraagt om een vorm te tekenen, zal de eerste vraag zijn "Wat voor vorm?" Hierdoor weet je dus dat het niet as-is gebruikt kan worden, de methode draw() is abstract, en zo zou getArea() dat ook zijn.

Als je bijvoorbeeld een website wilt maken die vormen kan tekenen, wil je natuurlijk niet voor elke vorm een andere syntax hebben. Dit is mogelijk door middel van interfaces, maar in dit geval is een abstract class logischer. Een cirkel is echt een vorm, het implementeert het niet.

Het is ook belangrijk dat elke class zijn eigen verantwoordelijken heeft. Dus, ook al is een class verplicht om de methode draw() te implementeren, de implementatie zal verschillend zijn. Als je bijvoorbeeld de classes Circle en Rectangle hebt, hebben deze beide de draw() methode. Maar, de Circle class heeft natuurlijk code om een cirkel te tekenen, en de Rectangle class om een rechthoek te tekenen.

Ik hoop dat het een beetje een duidelijke uitleg is.
 
Ward van der Put
Moderator

Ward van der Put

26/07/2013 12:35:21
Quote Anchor link
Francoi gckx op 26/07/2013 12:21:04:
Vraag van de week, misschien een leuk concept voor op de site:P
+1
 
Francoi gckx

Francoi gckx

26/07/2013 12:38:53
Quote Anchor link
Ik begrijp het nog niet helemaal,

Dus een abstract class is meestal de hoofd class die (meestal?) meerdere extended classes heeft
je kan de abstract class niet instantieren want je moet instanties van de subclasses ebruiken?
 
Erwin H

Erwin H

26/07/2013 13:09:23
Quote Anchor link
Toevoeging op Koen (wat verder een prima uitleg is), een abstracte class hoeft geen abstracte methodes te bevatten om abstract te zijn.

Meestal zal je abstracte classes gebruiken om bepaalde gedeelde functionaliteit alvast te definieren (en te implementere), zonder dat de class al een compleet geheel vormt. Daarmee is het instantieren van die class dus niet gewenst en derhalve maak je het abstract zodat het ook niet kan. Hiervan heb ik als voorbeeld mijn serie aan controllers. Voor verschillende type requests heb ik verschillende controllers. Echter, alle controllers hebben bepaalde methodes die ik dus gebundeld heb in een abstracte basis class. Die kan zelf verder geen request afhandelen en is daarom abstract.
 
Joey Drieling

Joey Drieling

26/07/2013 13:10:48
Quote Anchor link
Op phptuts.nl staat een heel mooi hoofdstuk, die hier over gaat in de tutorial OOP.

http://www.phptuts.nl/view/45/12/
 
Francoi gckx

Francoi gckx

26/07/2013 15:21:56
Quote Anchor link
Bedankt voor de link het is nu wat duidelijker als ik de topic berichten herlees en de link
Gewijzigd op 26/07/2013 15:36:00 door Francoi gckx
 



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.