In de wereld van objectgeoriënteerd programmeren (OOP) verwijst overerving naar het mechanisme van het vermogen van een klasse om eigenschappen van een andere klasse tijdens runtime te erven of uit te breiden. Met deze eigenschap kan een afgeleide klasse eigenschappen of eigenschappen van een basisklasse verkrijgen.
Overerving in Python wordt beschouwd als een van de belangrijkste aspecten van OOP omdat het dient als een herbruikbare functie, die een stuk code maakt robuuster.
< / p>
Voordelen
- Overerving beschrijft relaties die lijken op echte scenario`s.
- Het biedt een herbruikbaarheid waarmee de gebruiker extra functionaliteit aan een afgeleide klasse kan toevoegen zonder deze te wijzigen.
- Als klasse Y erft van klasse X, dan erven automatisch alle subklassen van Y van klasse X.
Basisvoorwaarden voor overerving
- Subklasse / afgeleide klasse: dit is een klasse die eigenschappen erft van een andere klasse (meestal een basisklasse).
- Superklasse / basisklasse: Dit is de klasse waar andere subklassen vandaan komen.
- Een afgeleide klasse leidt / erft / breidt gewoonlijk een basisklasse uit.
Syntaxis
class SuperClassName: Body van Super class-klasse DerivedClass_Name (SuperClass): Body van afgeleide class
Voorbeelden
Laten we met eenvoudige voorbeelden in de wereld van Python-overerving duiken. Lees ook over meervoudige overerving .
< br>
Stap 1. Maak een basisklasse
class Vader: # Het sleutelwoord `self` wordt gebruikt om de instantie van een klasse weer te geven. # Door het trefwoord "self" te gebruiken, krijgen we toegang tot de attributen en methoden van de klasse in python. # De methode "__init__" wordt aangeroepen als een constructor in objectgeoriënteerde terminologie. # Deze methode wordt aangeroepen wanneer een object wordt gemaakt op basis van een klasse. # het staat de klasse toe om de attributen van de klasse te initialiseren. def __init __ (zelf, naam, achternaam): zelf.naam = naam zelf.achternaam = achternaam def afdruknaam (zelf): print (zelf.naam, zelf.achternaam) # Gebruik de klasse Father om een object te maken en voer vervolgens uit de printname-methode: x = Vader ("Anees", "Mulani") x.printname ()
Uitvoer: Anees Mulani
Stap 2. Maak een afgeleide klasse
# De subklasse __init __ () functie heft de overerving van de basisklasse __init __ () functie op. klasse Zoon (Vader): def __init __ (zelf, naam, achternaam): Vader .__ init __ (zelf, naam, achternaam) x = Zoon ("Dev", "Bajaj") x.printname ()
Conclusie: Dev Bajaj
Als u de functie super () gebruikt
Als u de functie super ()
gebruikt, hoeft u de ouder niet te gebruiken elementnaam, erft het automatisch de methoden en eigenschappen van het bovenliggende element.
class Vader: def __init __ (zelf, naam, achternaam) : zelf.naam = naam zelf.achternaam = achternaam def afdruknaam (zelf): print (zelf.naam, zelf.achternaam) klasse Zoon (Vader): def __init __ (zelf, naam, achternaam): super () .__ init __ (naam, achternaam) x = Student ("Dev", "Bajaj") x.printnaam ()