Science >> Wetenschap & Ontdekkingen >  >> Biologie

Wat is overerving beschrijven de verschillende soorten met behulp van het programma?

Overerving in objectgeoriënteerde programmering

Overerving is een fundamenteel concept in objectgeoriënteerde programmering (OOP) waarmee u nieuwe klassen (onderliggende klassen of subklassen) kunt maken op basis van bestaande klassen (ouderklassen of superklassen). Het bevordert herbruikbaarheid van code en helpt uw code op een hiërarchische manier te organiseren.

Voordelen van overerving:

* Code herbruikbaarheid: Vermijdt repetitieve code door eigenschappen en methoden van ouderklassen te erven.

* onderhoudbaarheid: Wijzigingen aangebracht in de ouderklasse reflecteren automatisch in zijn onderliggende klassen, waardoor het onderhoud wordt vereenvoudigd.

* Uitbreidbaarheid: Kinderklassen kunnen nieuwe functies en functionaliteiten toevoegen met behoud van de kernfunctionaliteit van de bovenliggende klasse.

* polymorfisme: Kinderklassen kunnen methoden teniet doen die zijn geërfd van de bovenliggende klasse, waardoor verschillende gedragingen voor dezelfde methode mogelijk zijn.

Soorten overerving:

1. Enkele erfenis: Een kindklasse erft slechts één ouderklasse. Dit is de eenvoudigste vorm van erfenis.

`` `Python

klasdier:

def __init __ (zelf, naam):

self.name =naam

def speak (zelf):

print ("generiek dierengeluid")

Klashond (dier):

def speak (zelf):

print ("Woof!")

Dog =Dog ("Buddy")

Dog.Speak () # Output:Woof!

`` `

2. Multi-level erfenis: Een kindklasse erft van een ouderklasse, die zelf erft van een andere ouderklasse.

`` `Python

klasdier:

def __init __ (zelf, naam):

self.name =naam

def speak (zelf):

print ("generiek dierengeluid")

Klasse zoogdier (dier):

def __init __ (zelf, naam, fur_color):

super () .__ init __ (naam)

self.fur_color =fur_color

def speak (zelf):

print ("zoogdiergeluid")

Class Dog (zoogdier):

def speak (zelf):

print ("Woof!")

Dog =Dog ("Buddy", "Brown")

Dog.Speak () # Output:Woof!

`` `

3. Hiërarchische erfenis: Meerdere onderliggende klassen overleven van dezelfde ouderklasse.

`` `Python

klasdier:

def __init __ (zelf, naam):

self.name =naam

def speak (zelf):

print ("generiek dierengeluid")

Klasse kat (dier):

def speak (zelf):

print ("miauw!")

Klashond (dier):

def speak (zelf):

print ("Woof!")

Cat =Cat ("Whiskers")

Dog =Dog ("Buddy")

Cat.Speak () # Output:Miauw!

Dog.Speak () # Output:Woof!

`` `

4. Meerdere erfenis: Een kinderklasse erft van meerdere ouderklassen.

`` `Python

Class Flyer:

def -vlieg (zelf):

print ("Flying ...")

Klaszwemmer:

Def Swim (Self):

print ("zwemmen ...")

Class Duck (flyer, zwemmer):

def kwak (zelf):

print ("Quack!")

eend =eend ()

Duck.Fly () # Output:Flying ...

Duck.Swim () # Output:zwemmen ...

Duck.quack () # Output:Quack!

`` `

5. Hybride overerving: Een combinatie van meerdere erfenistypen.

`` `Python

klasdier:

def __init __ (zelf, naam):

self.name =naam

Class Flyer:

def -vlieg (zelf):

print ("Flying ...")

Klasse vogel (dier, flyer):

def speak (zelf):

print ("Tweet!")

Bird =Bird ("Tweety")

bird.fly () # output:vliegen ...

Bird.Speak () # Uitvoer:Tweet!

`` `

Belangrijke punten om te onthouden:

* Overerving is een krachtig hulpmiddel voor codeorganisatie en hergebruik.

* Het is belangrijk om strategisch overerving te gebruiken, gezien de relatie tussen klassen en het gewenste gedrag.

* Hogerende methoden kunnen onderliggende klassen specialiseerd gedrag bieden voor geërfde methoden.

Deze voorbeelden tonen verschillende soorten overerving in Python. De concepten zijn echter van toepassing in verschillende programmeertalen met hun eigen syntaxis en conventies.