Arv er et grundlæggende koncept inden for objektorienteret programmering (OOP), der giver dig mulighed for at oprette nye klasser (børneklasser eller underklasser) baseret på eksisterende klasser (forældreklasser eller superklasser). Det fremmer kode genanvendelighed og hjælper med at organisere din kode på en hierarkisk måde.
Fordele ved arv:
* Kodens genanvendelighed: Undgår gentagen kode ved at arve egenskaber og metoder fra forældreklasser.
* vedligeholdelighed: Ændringer foretaget i forældreklassen reflekterer automatisk i sine børnesurser og forenkler vedligeholdelse.
* udvidelighed: Børneklasser kan tilføje nye funktioner og funktionaliteter, samtidig med at den kernefunktionalitet i forældreklassen.
* polymorfisme: Børneklasser kan tilsidesætte metoder, der er arvet fra forældreklassen, hvilket tillader forskellig adfærd for den samme metode.
Typer af arv:
1. enkelt arv: En børneklasse arver kun fra en forældreklasse. Dette er den enkleste form for arv.
`` `Python
Klasse dyr:
def __init __ (selv, navn):
self.name =navn
Def Tal (self):
Print ("Generisk dyrelyd")
Klassehund (dyr):
Def Tal (self):
Print ("Woof!")
Hund =hund ("Buddy")
Dog.Speak () # output:woof!
`` `
2. arv på flere niveauer: En børneklasse arver fra en forældreklasse, som i sig selv arver fra en anden forældreklasse.
`` `Python
Klasse dyr:
def __init __ (selv, navn):
self.name =navn
Def Tal (self):
Print ("Generisk dyrelyd")
Klassepattedyr (dyr):
def __init __ (self, navn, fur_color):
super () .__ init __ (navn)
self.fur_color =fur_color
Def Tal (self):
print ("pattedyr lyd")
Klassehund (pattedyr):
Def Tal (self):
Print ("Woof!")
Hund =hund ("Buddy", "Brown")
Dog.Speak () # output:woof!
`` `
3. hierarkisk arv: Flere børneklasser arver fra den samme forældreklasse.
`` `Python
Klasse dyr:
def __init __ (selv, navn):
self.name =navn
Def Tal (self):
Print ("Generisk dyrelyd")
Klassekat (dyr):
Def Tal (self):
Print ("Meow!")
Klassehund (dyr):
Def Tal (self):
Print ("Woof!")
kat =kat ("whiskers")
Hund =hund ("Buddy")
Cat.Speak () # Output:Meow!
Dog.Speak () # output:woof!
`` `
4. Flere arv: En børneklasse arver fra flere forældreklasser.
`` `Python
Klasseflyer:
Def Fly (self):
Print ("Flyvning ...")
Klasse svømmer:
def svømmer (self):
Print ("Svømning ...")
Klasseand (flyer, svømmer):
Def Quack (self):
Print ("Quack!")
Duck =Duck ()
duck.fly () # output:flyvende ...
duck.swim () # output:svømning ...
Duck.quack () # output:Quack!
`` `
5. hybrid arv: En kombination af flere arvstyper.
`` `Python
Klasse dyr:
def __init __ (selv, navn):
self.name =navn
Klasseflyer:
Def Fly (self):
Print ("Flyvning ...")
Klassefugl (dyr, flyer):
Def Tal (self):
Print ("Tweet!")
Bird =Bird ("Tweety")
fugl.fly () # output:flyvning ...
Bird.Speak () # Output:Tweet!
`` `
nøglepunkter at huske:
* Arv er et kraftfuldt værktøj til kodeorganisation og genbrug.
* Det er vigtigt at bruge arv strategisk i betragtning af forholdet mellem klasser og den ønskede opførsel.
* Overridende metoder giver børneklasser mulighed for at give specialiseret adfærd til arvelige metoder.
Disse eksempler demonstrerer forskellige typer arv i Python. Koncepterne gælder imidlertid på tværs af forskellige programmeringssprog med deres egen syntaks og konventioner.
Varme artikler



