top 30 oops interview questions
Deze tutorial biedt een complete set van veelgestelde vragen en antwoorden voor Object-Oriented Programming (OOP) interview:
Softwareontwikkeling heeft ongeveer 70 jaar geschiedenis waarin verschillende talen zoals FORTRAN, Pascal, C, C ++ zijn uitgevonden. Er was een reeks verklaringen die fungeren als opdrachten die aan hardware worden gegeven om enkele elementaire wiskundige berekeningen uit te voeren, waardoor proceduretalen worden gemaakt om verschillende softwaretoepassingen te ontwerpen.
Met de uitvinding van internet waren beveiligde, stabiele en platformonafhankelijke en robuuste talen nodig bij het ontwerpen van complexe applicaties.
Objectgeoriënteerd programmeren is platformonafhankelijk, draagbaar, beveiligd en uitgerust met verschillende concepten zoals inkapseling, abstractie, overerving en polymorfisme.
Voordelen van OOPS zijn herbruikbaarheid, uitbreidbaarheid en modulariteit die de productiviteit verbeteren, gemakkelijker te onderhouden zijn door modulariteit, snellere en lagere ontwikkelingskosten door hergebruik van code, en beveiligde en hoogwaardige applicaties produceren.
Wat je leert:
Basisconcepten voor objectgeoriënteerd programmeren
Objectgeoriënteerd programmeren omvat intellectuele objecten, gegevens en daarmee geassocieerd gedrag om oplossingen te bieden voor zakelijke problemen. In de programmeertaal Java passen ontwikkelaars concepten toe als abstractie, inkapseling, overerving en polymorfisme om oplossingen voor zakelijke problemen te ontwerpen.
Diverse concepten zoals Abstractie die irrelevante details negeert, Inkapseling dat zich richt op welk minimum vereist is zonder enige complexiteit over interne functionaliteiten openbaar te maken, Erfenis om eigenschappen van de bovenliggende klasse te erven of meerdere overervingen te implementeren met behulp van een interface, en Polymorfisme dat de eigenschappen van methodeoverbelasting (statisch polymorfisme) en methodeoverschrijving (dynamisch polymorfisme) uitbreidt.
Meest gestelde vragen over OOPS-sollicitatiegesprekken
Vraag 1) Leg in het kort uit wat u bedoelt met Object Oriented Programming in Java?
Antwoord: OOP behandelt objecten, zoals real-life entiteiten zoals pen, mobiel, bankrekening met staat (gegevens) en gedrag (methoden).
Met behulp van access wordt de toegang van bestekschrijvers tot deze gegevens en methoden beveiligd gemaakt. Concepten van inkapseling en abstractie bieden het verbergen van gegevens en toegang tot essentiële zaken, overerving en polymorfisme helpen bij het hergebruiken van code en het overbelasten / overschrijven van methoden en constructeurs, waardoor toepassingen platformonafhankelijk, beveiligd en robuust worden met behulp van talen zoals Java.
Vraag 2) Uitleggen Is Java een pure objectgeoriënteerde taal?
Antwoord: Java is niet een geheel zuivere objectgeoriënteerde programmeertaal. De volgende zijn de redenen:
- Java ondersteunt en gebruikt primitieve gegevenstypen zoals int, float, double, char, etc.
- Primitieve gegevenstypen worden opgeslagen als variabelen of op de stapel in plaats van in de heap.
- In Java hebben statische methoden toegang tot statische variabelen zonder een object te gebruiken, in tegenstelling tot objectgeoriënteerde concepten.
V # 3) Beschrijf klasse en object in Java?
Antwoord: Klasse en object spelen een integrale rol in objectgeoriënteerde programmeertalen zoals Java.
- Klasse is een prototype of een sjabloon waarvan de staat en het gedrag wordt ondersteund door een object en wordt gebruikt bij het maken van objecten.
- Het object is een instantie van de klasse, bijvoorbeeld, De mens is een klasse waarbij de staat een wervelsysteem, hersenen, kleur en lengte heeft en gedrag vertoont zoals canThink (), couldToSpeak (), enz.
V # 4) Wat zijn de verschillen tussen klassen en objecten in Java?
Antwoord: Hieronder volgen enkele belangrijke verschillen tussen klassen en objecten in Java:
Klasse | Voorwerp |
---|---|
Real-life voorbeelden van Class kunnen een • Een recept om voedsel te bereiden. • Blauwdrukken voor een automotor. | Real-life voorbeelden van Object kunnen zijn • Een gerecht bereid volgens recept. • Motor geconstrueerd volgens blauwdrukken. |
Klasse is een logische entiteit | Object is fysieke entiteit |
Klasse is een sjabloon waaruit een object kan worden gemaakt | Object is een instantie van de klasse |
Klasse is een prototype met de staat en het gedrag van vergelijkbare objecten | Objecten zijn entiteiten die in het echte leven bestaan, zoals mobiel, muis of intellectuele objecten zoals een bankrekening |
Klasse wordt gedeclareerd met een class-sleutelwoord zoals class Classname {} | Object wordt aangemaakt via een nieuw trefwoord als Employee emp = new Employee (); |
Tijdens het maken van een klasse wordt er geen geheugen toegewezen | Tijdens het maken van een object wordt geheugen toegewezen aan het object |
Er is alleen eenrichtingsklasse die wordt gedefinieerd met het trefwoord class | Objecten kunnen op vele manieren worden gemaakt, zoals het gebruik van een nieuw trefwoord, de methode newInstance (), de methode clone () en de fabrieksmethode. |
V # 5) Waarom is er behoefte aan objectgeoriënteerd programmeren?
Antwoord: OOP biedt toegangsspecificaties en functies voor het verbergen van gegevens voor meer beveiliging en toegang tot controlegegevens, overbelasting kan worden bereikt door overbelasting van functies en operators, hergebruik van code is mogelijk omdat reeds gemaakte objecten in het ene programma in andere programma's kunnen worden gebruikt.
Gegevensredundantie, codeonderhoud, gegevensbeveiliging en het voordeel van concepten zoals inkapseling, abstractie, polymorfisme en overerving in objectgeoriënteerd programmeren bieden een voordeel ten opzichte van voorheen gebruikte procedurele programmeertalen.
Vraag 6) Leg abstractie uit met een real-time voorbeeld.
Antwoord: Abstractie in objectgeoriënteerd programmeren betekent complexe interne onderdelen verbergen, maar alleen essentiële kenmerken en gedrag met betrekking tot context blootleggen. In het echte leven is een voorbeeld van abstractie een online winkelwagentje, bijvoorbeeld op elke e-commercesite. Zodra u een product heeft geselecteerd en een bestelling heeft geplaatst, bent u alleen geïnteresseerd in het op tijd ontvangen van uw product.
Hoe dingen gebeuren, is niet wat u interesseert, aangezien het complex is en verborgen wordt gehouden. Dit staat bekend als abstractie. Neem evenzo het voorbeeld van ATM: de complexiteit van de manier waarop geld van uw rekening wordt afgeschreven, wordt verborgen gehouden en u ontvangt contant geld via een netwerk. Evenzo is voor auto's de manier waarop benzine de motor laat lopen, buitengewoon complex.
V # 7) Geef een aantal real-time voorbeelden en leg Inheritance uit.
Antwoord: Overerving betekent dat een klasse (subklasse) eigenschappen van een andere klasse (superklasse) verkrijgt door overerving. Neem in het echte leven een voorbeeld van overerving van een normale fiets waarbij het een ouderklasse is en een sportfiets een kinderklasse kan zijn, waar een sportfiets eigenschappen en gedrag heeft geërfd van draaiende wielen met pedalen via versnellingen die van een normale fiets.
Vraag 8) Hoe polymorfisme werkt in Java, uitleggen met praktijkvoorbeelden?
Antwoord: Polymorfisme is het vermogen om meerdere vormen of mogelijkheden van de methode te hebben om verschillende dingen te doen. In het echte leven gedraagt dezelfde persoon die verschillende taken uitvoert zich anders. Op kantoor is hij werknemer, thuis, hij is vader, tijdens of na schooltijd is hij student, in het weekend speelt hij cricket en is hij een speler op de speelplaats.
beste programma's om verwijderde bestanden te herstellen
Op Java zijn er twee soorten polymorfisme
- Compilatietijd polymorfisme: Dit wordt bereikt door overbelasting van de methode of door overbelasting van de operator.
- Runtime polymorfisme: Dit wordt bereikt door methode te overschrijven.
Vraag 9) Hoeveel soorten overerving zijn er?
Antwoord: Hieronder worden verschillende soorten overerving genoemd:
- Enige erfenis: De klasse met één kind neemt de kenmerken van de klasse met één ouder over.
- Meerdere overerving: Eén klasse erft kenmerken van meer dan één basisklasse en wordt niet ondersteund in Java, maar de klasse kan meer dan één interface implementeren.
- Overerving op meerdere niveaus: Een klasse kan erven van een afgeleide klasse, waardoor het een basisklasse wordt voor een nieuwe klasse, bijvoorbeeld, een kind erft gedrag van zijn vader, en de vader heeft eigenschappen van zijn vader geërfd.
- Hiërarchische overerving: Een klasse wordt overgeërfd door meerdere subklassen.
- Hybride overerving: Dit is een combinatie van enkele en meervoudige overervingen.
V # 10) Wat is interface?
Antwoord: Interface is vergelijkbaar met de klasse waar het methoden en variabelen kan hebben, maar de methoden hebben geen hoofdtekst, alleen een handtekening die bekend staat als de abstracte methode. Variabelen die in de interface zijn gedeclareerd, kunnen standaard openbaar, statisch en definitief zijn. Interface wordt in Java gebruikt voor abstractie en meerdere overervingen, waarbij de klasse meerdere interfaces kan implementeren.
Vraag 11) Kunt u de voordelen van abstractie en overerving uitleggen?
Antwoord: Abstraction onthult alleen essentiële details voor de gebruiker en negeert of verbergt irrelevante of complexe details. Met andere woorden, data-abstractie legt de interface bloot en verbergt implementatiedetails. Java voert abstractie uit met behulp van interfaces en abstracte klassen. Het voordeel van abstractie is dat het eenvoudig is om dingen te bekijken door de complexiteit van de implementatie te verminderen of te verbergen.
Duplicatie van code wordt vermeden en het vergroot de herbruikbaarheid van code. Alleen essentiële details worden aan de gebruiker onthuld en verbeteren de beveiliging van de applicatie.
Overerving is waar de onderliggende klasse de functionaliteit (gedrag) van de bovenliggende klasse overneemt. We hoeven geen code te schrijven die eenmaal in de bovenliggende klasse is geschreven voor functionaliteit opnieuw in de onderliggende klasse, waardoor het gemakkelijker wordt om de code opnieuw te gebruiken. De code wordt ook leesbaar. Overerving wordt gebruikt als er 'een' relatie is. Voorbeeld: Hyundai is een auto OF MS Word is een software.
V # 12) Wat is het verschil tussen verlengingen en werktuigen?
Antwoord: Het sleutelwoord verlengt en implementeert wordt gebruikt voor overerving, maar op verschillende manieren.
De verschillen tussen de trefwoorden Extends en Implementaties in Java worden hieronder toegelicht:
Verlengt | Werktuigen |
---|---|
Een klasse kan een andere klasse uitbreiden (een kind dat ouder wordt door zijn kenmerken te erven). Interface erven ook (met behulp van trefwoord breidt uit) een andere interface. | Een klasse kan een interface implementeren |
Subklasse-uitbreidende superklasse mag niet alle superklasse-methoden overschrijven | Klasse-implementerende interface moet alle methoden van de interface implementeren. |
Klasse kan slechts één superklasse uitbreiden. | Klasse kan een willekeurig aantal interfaces implementeren. |
Interface kan meer dan één interface uitbreiden. | Interface kan geen andere interface implementeren. |
Syntaxis: klas Kind breidt klas uit Ouder | Syntaxis: klasse Hybride implementeert Rose |
V # 13) Wat zijn verschillende toegangsmodificatoren in Java?
Antwoord: Toegangsmodificatoren in Java bepalen de toegangsbereik van klasse, constructor, variabele, methode of gegevenslid. Verschillende soorten toegangsmodificatoren zijn als volgt:
- Standaard toegangsmodificator is zonder enige toegangsspecificatie gegevensleden, klassen en methoden, en zijn toegankelijk binnen hetzelfde pakket.
- Modificatoren voor privétoegang zijn gemarkeerd met het sleutelwoord private, en zijn alleen toegankelijk binnen de klas, en zelfs niet toegankelijk per klas vanuit hetzelfde pakket.
- Beschermde toegangsmodificatoren kan toegankelijk zijn binnen hetzelfde pakket of subklassen uit verschillende pakketten.
- Modificatoren voor openbare toegang zijn overal toegankelijk.
Vraag 14) Leg het verschil uit tussen abstracte klasse en methode?
Antwoord: Hieronder volgen enkele verschillen tussen abstracte klasse en abstracte methode in Java:
Abstracte klasse | Abstracte methode |
---|---|
Object kan niet worden gemaakt op basis van de abstracte klasse. | De abstracte methode heeft een handtekening maar heeft geen lichaam. |
Subklasse heeft een abstracte klasse gemaakt of overgenomen om toegang te krijgen tot leden van een abstracte klasse. | Het is verplicht om abstracte methoden van superklasse in hun subklasse te negeren. |
Abstracte klasse kan abstracte methoden of niet-abstracte methoden bevatten. | Klasse die een abstracte methode bevat, moet een abstracte klasse worden. |
V # 15) Wat zijn de verschillen tussen methode en constructor?
Antwoord: Hieronder volgen de verschillen tussen constructors en methoden in Java:
Constructeurs | Methoden |
---|---|
De constructeursnaam moet overeenkomen met die van Class. | Methoden mogen niet dezelfde naam hebben als de klassenaam. |
Ze worden gebruikt om geheugen aan het object te maken, te initialiseren en toe te wijzen. | Er worden methoden gebruikt om bepaalde uitspraken die erin zijn geschreven uit te voeren. |
Constructors worden impliciet aangeroepen door het systeem wanneer objecten worden gemaakt. | Methoden worden aangeroepen wanneer ze worden aangeroepen. |
Ze worden aangeroepen met een nieuw trefwoord tijdens het maken van een instantie van de klasse (object). | Methoden worden aangeroepen tijdens de uitvoering van het programma. |
Constructor heeft geen retourtype. | Methode heeft een retourtype. |
Constructor kan niet worden overgenomen door de subklasse. | Methoden kunnen worden overgenomen door een subklasse. |
V # 16) Wat is een constructor in Java?
Antwoord: Constructor is een methode zonder retourtype en heeft dezelfde naam als de klassenaam. Wanneer we een object maken, wijst een standaardconstructor geheugen toe aan een object tijdens de compilatie van Java-code. Constructors worden gebruikt om objecten te initialiseren en beginwaarden voor objectattributen in te stellen.
V # 17) Hoeveel soorten constructors kunnen in Java worden gebruikt? Leg het uit.
Antwoord: Er zijn in principe drie soorten constructeurs in Java.
Dit zijn:
- Standaard constructor: Deze constructor heeft geen enkele parameter en roept elke keer dat u een instantie van een klasse (object) maakt aan. Als een klasse een Employee is, is de syntaxis van de standaardconstructor Employee ().
- No-arg constructor: Zoals de naam al aangeeft, wordt een constructor zonder enig argument een no-arg constructor genoemd.
- Geparameteriseerde constructor: Constructor met een aantal parameters wordt een geparametriseerde constructor genoemd. U moet argumenten opgeven, d.w.z. beginwaarden met betrekking tot het gegevenstype van parameters in die constructor.
V # 18) Waarom wordt een nieuw trefwoord gebruikt in Java?
Antwoord: Wanneer we een instantie van klasse maken, d.w.z. objecten, gebruiken we het Java-sleutelwoord nieuw Het wijst geheugen toe in het heapgebied waar JVM ruimte reserveert voor een object. Intern roept het ook de standaardconstructor op.
Syntaxis:
V # 19) Wanneer gebruik je het super-sleutelwoord?
Antwoord: Super is een Java-sleutelwoord dat wordt gebruikt om de bovenliggende (basis) klasse te identificeren of te verwijzen.
- We kunnen super gebruiken om toegang te krijgen tot de constructor van de superklasse en om methoden van de superklasse aan te roepen.
- Wanneer de namen van methoden hetzelfde zijn in superklasse en subklasse, om naar superklasse te verwijzen, de super trefwoord wordt gebruikt.
- Om toegang te krijgen tot leden van de bovenliggende klasse met dezelfde naam als deze aanwezig zijn in de bovenliggende en onderliggende klasse.
- Super kan worden gebruikt om een expliciete aanroep te doen naar no-arg en geparameteriseerde constructors van de bovenliggende klasse.
- Toegang tot de methode van de ouderklas kan worden gedaan met super , wanneer de onderliggende klasse de methode heeft overschreven.
Q # 20) Wanneer gebruik je dit trefwoord?
Antwoord: dit trefwoord in Java verwijst naar het huidige object in de constructor of in de methode.
- Wanneer klasseattributen en constructors met parameters beide dezelfde naam hebben, dit trefwoord wordt gebruikt.
- Sleutelwoorden dit roept de huidige klassenconstructor, methode van de huidige klasse aan, retourneert het object van de huidige klasse, geeft een argument door in de constructor en roept de methode aan.
V # 21) Wat is het verschil tussen Runtime en compilatietijd polymorfisme?
Antwoord: Zowel runtime als compile-time polymorfisme zijn twee verschillende soorten polymorfisme. Hun verschillen worden hieronder toegelicht:
Compileer tijdpolymorfisme | Runtime polymorfisme |
---|---|
De oproep wordt opgelost door een compiler in compilatietijd polymorfisme. | De oproep wordt niet opgelost door de compiler in runtime polymorfisme. |
Het is ook bekend als statische binding en overbelasting van de methode. | Het wordt ook wel dynamisch, laat en methode-overschrijven genoemd. |
Methoden met dezelfde naam met verschillende parameters of methoden met dezelfde handtekening en verschillende retourtypen zijn polymorfisme tijdens het compileren. | Methode met dezelfde naam met dezelfde parameters of handtekening die in verschillende klassen zijn gekoppeld, worden methode-overschrijving genoemd. |
Het wordt bereikt door overbelasting van de functie en de operator. | Het kan worden bereikt door aanwijzers en virtuele functies. |
Omdat alle dingen worden uitgevoerd tijdens het compileren. polymorfisme tijdens het compileren is minder flexibel. | Naarmate dingen tijdens runtime worden uitgevoerd, is runtime-polymorfisme flexibeler. |
V # 22) Welke objectgeoriënteerde functies worden in Java gebruikt?
Antwoord: Een concept van het gebruik van een object in de programmeertaal Java heeft voordelen door het gebruik van objectgeoriënteerde concepten zoals inkapseling om de toestand en het gedrag van een object aan elkaar te binden, de gegevenstoegang te beveiligen met toegangsspecificaties, functies zoals abstractie bij het verbergen van informatie, overerving om de toestand uit te breiden , en het gedrag van basisklassen voor onderliggende klassen, compilatietijd en runtime-polymorfisme voor respectievelijk methode-overbelasting en methode-overschrijving.
V # 23) Wat is overbelasting van de methode?
Antwoord: Wanneer twee of meer methoden met dezelfde naam een verschillend aantal parameters of verschillende soorten parameters hebben, kunnen deze methoden al dan niet verschillende retourtypen hebben, dan zijn het overbelaste methoden en de functie is methodeoverbelasting. Overbelasting van de methode wordt ook wel compilatietijdpolymorfisme genoemd.
V # 24) Wat is het overschrijven van een methode?
Antwoord: Wanneer een methode van een subklasse (afgeleid, kindklasse) dezelfde naam, parameters (handtekening) en hetzelfde retourneringstype heeft als de methode in zijn superklasse (basis, bovenliggende klasse), dan wordt gezegd dat de methode in de subklasse wordt overschreven de methode in de superklasse. Deze functie wordt ook wel runtime-polymorfisme genoemd.
Vraag 25) Leg de overbelasting van de constructor uit.
Antwoord: Meer dan één constructor met verschillende parameters, zodat verschillende taken met elke constructor kunnen worden uitgevoerd, wordt constructoroverloading genoemd. Bij overbelasting van constructeurs kunnen objecten op verschillende manieren worden gemaakt. Verschillende verzamelingsklassen in Java API zijn voorbeelden van overbelasting van constructeurs.
V # 26) Welke soorten argumenten kunnen in Java worden gebruikt?
Antwoord: Voor Java-methoden en -functies kunnen parametergegevens op verschillende manieren worden verzonden en ontvangen. Als methodB () wordt aangeroepen vanuit methodA (), methodA () is een aanroepfunctie en methodB () wordt een functie genoemd, argumenten die worden verzonden door methodA () zijn werkelijke argumenten en parameters van methodB () worden formele argumenten genoemd.
- Oproep op waarde: Wijzigingen die zijn aangebracht in de formele parameter (parameters van methodB ()) worden niet teruggestuurd naar de aanroeper (methodA ()). Deze methode wordt aangeroepen oproep op waarde Java ondersteunt de aanroep op waarde.
- Bel via referentie: Wijzigingen in de formele parameter (parameters van methodB ()) worden teruggestuurd naar de aanroeper (parameters van methodB ()).
- Wijzigingen in formele parameters (parameters van methodB ()) worden weerspiegeld in werkelijke parameters (argumenten verzonden door methodA ()). Dit wordt call by reference genoemd.
V # 27) Maak onderscheid tussen statische en dynamische binding?
Antwoord: De verschillen tussen statische en dynamische binding worden uitgelegd in de onderstaande tabel.
Statische binding | Dynamische binding |
---|---|
Statische binding in Java gebruikt type velden en klasse als een resolutie. | Dynamische binding in Java gebruikt object voor het oplossen van binding. |
Method Overloading is een voorbeeld van statische binding. | Methode overschrijven is een voorbeeld van dynamische binding. |
Statische binding wordt tijdens het compileren opgelost. | Dynamische binding wordt tijdens runtime opgelost. |
Methoden en variabelen die statische binding gebruiken, zijn privé-, definitieve en statische typen. | Virtuele methoden gebruiken dynamische binding. |
V # 28) Kun je de basisklasse, subklasse en superklasse uitleggen?
Antwoord: Basisklasse, subklasse en superklasse in Java worden als volgt uitgelegd:
qa manager interviewvragen antwoorden pdf
- Basisklasse of bovenliggende klasse is een superklasse en is een klasse waarvan de subklasse of de onderliggende klasse is afgeleid.
- Subklasse is een klasse die attributen (eigenschappen) en methoden (gedrag) erft van de basisklasse.
V # 29) Wordt overbelasting van de operator ondersteund in Java?
Antwoord: Overbelasting van de operator wordt niet ondersteund door Java, omdat
- Het zorgt ervoor dat de tolk meer moeite doet om de feitelijke functionaliteit van de operator te begrijpen, waardoor code complex en moeilijk te compileren wordt.
- Overbelasting van de operator maakt programma's meer foutgevoelig.
- Het kenmerk van overbelasting door de operator kan echter op een eenvoudige, duidelijke en foutloze manier worden bereikt door overbelasting van de methode.
V # 30) Wanneer wordt de afrondingsmethode gebruikt?
Antwoord: afronden methode wordt aangeroepen net voordat het object op het punt staat te worden opgehaald. Deze methode onderdrukt om geheugenlekken te minimaliseren, voer opruimactiviteiten uit door systeembronnen te verwijderen.
V # 31) Leg uit over tokens.
Antwoord: Tokens in het Java-programma zijn de kleinste elementen die de compiler herkent. ID's, trefwoorden, letterlijke tekens, operatoren en scheidingstekens zijn voorbeelden van tokens.
Gevolgtrekking
Objectgeoriënteerde programmeerconcepten zijn een integraal onderdeel voor ontwikkelaars, automatisering en handmatige testers die een automatiseringstestframework ontwerpen om een applicatie te testen of applicaties te ontwikkelen met de programmeertaal Java.
Een diepgaand begrip is verplicht van alle objectgeoriënteerde functies zoals klasse, object, abstractie, inkapseling, overerving, polymorfisme, en het toepassen van deze concepten in een programmeertaal zoals Java om aan de eisen van de klant te voldoen.
We hebben geprobeerd de belangrijkste interviewvragen over objectgeoriënteerd programmeren te behandelen en gepaste antwoorden te geven met voorbeelden.
We wensen je het allerbeste voor je aanstaande interview!
Aanbevolen literatuur
- OOP Java: inleiding tot objectgeoriënteerd programmeren in Java
- Top 20 Java-interviewprogramma's voor programmeer- en coderingsinterviews
- Top 50+ Core Java interviewvragen en antwoorden
- Java-interface en abstracte les met voorbeelden
- Inkapseling in Java: volledige zelfstudie met voorbeelden
- Wat is abstractie in Java - leer met voorbeelden
- OOPS-concepten in C #: zelfstudie over objectgeoriënteerd programmeren
- Python OOPs-concepten (Python-klassen, objecten en overerving)