Polymorfi
Udforsk avancerede OOP-koncepter.
Polymorfi er en gratis Python For Kids-lektion på CoddyKit. Dette er lektion 5 af 5. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python For Kids, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python For Kids-kurset indeholder 5 lektioner i alt.
Polymorfi
Velkommen tilbage til lektionen om objektorienteret programmering (OOP)! I dag skal vi udforske polymorfi i Python, et kraftfuldt koncept, der gør det muligt for objekter at antage flere former.

Hvad er polymorfi?
Polymorfi er et grundlæggende koncept i OOP, der gør det muligt at behandle objekter fra forskellige klasser som objekter fra en fælles superklasse. Det gør, at den samme metode kan opføre sig forskelligt afhængigt af det objekt, der kalder den.
- Definition: "Mange former" – forskellige objekters evne til at reagere på samme metodekald på hver deres måde.
- Formål: Gør kode mere fleksibel og lettere at integrere ved at tillade udskiftelige objekter.
Lad os se, hvordan polymorfi fungerer i Python!
Implementering af polymorfi
Polymorfi kan opnås i Python gennem tilsidesættelse af metoder og ved hjælp af indbyggede funktioner, der fungerer med forskellige objekttyper.
- Tilsidesættelse af metoder: Omdefinering af en metode i en underklasse, som allerede er defineret i superklassen.
- Indbyggede funktioner: Funktioner som
len(), der fungerer med forskellige datatyper.
Lad os se nærmere på tilsidesættelse af metoder.
Tilsidesættelse af metoder
Tilsidesættelse af metoder gør det muligt for en underklasse at levere en specifik implementering af en metode, der allerede er defineret i dens superklasse. Dette er et centralt aspekt ved polymorfi.
Eksempel:
# Defines the Animal parent class with a speak method
class Animal:
def speak(self):
print("The animal makes a sound.") # Generic speak method
Oprettelse af underklasser med tilsidesatte metoder
Lad os oprette underklasser, der nedarver fra Animal og tilsidesætter metoden speak for at levere specifik adfærd.
Eksempel:
# Defines the Dog child class inheriting from Animal
class Dog(Animal):
def speak(self):
print("The dog barks.") # Overridden speak method
# Defines the Cat child class inheriting from Animal
class Cat(Animal):
def speak(self):
print("The cat meows.") # Overridden speak method
Brug af polymorfi med tilsidesatte metoder
Lad os nu oprette objekter fra underklasserne og se, hvordan de udviser forskellig adfærd ved hjælp af det samme metodenavn.
Eksempel:
# Creates objects of Dog and Cat classes
dog = Dog()
cat = Cat()
# Calls the speak method on both objects
dog.speak() # Output: The dog barks.
cat.speak() # Output: The cat meows.
Polymorfi med indbyggede funktioner
Polymorfi er ikke begrænset til brugerdefinerede klasser. Pythons indbyggede funktioner som len() fungerer med forskellige datatyper og demonstrerer dermed polymorf adfærd.
Eksempel:
# Uses len() with a list
my_list = [1, 2, 3, 4]
print(len(my_list)) # Output: 4
# Uses len() with a string
my_string = "Hello"
print(len(my_string)) # Output: 5
# Uses len() with a dictionary
my_dict = {"a": 1, "b": 2}
print(len(my_dict)) # Output: 2
Eksempelprogram: Beregning af arealet af figurer
Lad os oprette et program, der beregner arealet af forskellige figurer ved hjælp af polymorfi. Vi definerer en superklasse Shape samt underklasserne Circle og Rectangle, som tilsidesætter metoden area.
Kode:
# Defines the Shape parent class with an area method
class Shape:
def area(self):
pass # Placeholder method
# Defines the Circle child class inheriting from Shape
class Circle(Shape):
def __init__(self, radius):
self.radius = radius # Sets the radius of the circle
def area(self):
return 3.14 * self.radius ** 2 # Calculates area of the circle
# Defines the Rectangle child class inheriting from Shape
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width # Sets the width of the rectangle
self.height = height # Sets the height of the rectangle
def area(self):
return self.width * self.height # Calculates area of the rectangle
# Creates objects of Circle and Rectangle classes
circle = Circle(5)
rectangle = Rectangle(4, 6)
# Calculates and prints areas using polymorphism
print("Circle Area:", circle.area()) # Output: Circle Area: 78.5
print("Rectangle Area:", rectangle.area()) # Output: Rectangle Area: 24
# Defines the Vehicle parent class with a move method
class Vehicle:
def move(self):
print("The vehicle moves.")
# Defines the Bicycle child class inheriting from Vehicle
class Bicycle(Vehicle):
def move(self):
print("The bicycle pedals forward.")
# Defines the Airplane child class inheriting from Vehicle
class Airplane(Vehicle):
def move(self):
print("The airplane flies in the sky.")
# Creates objects of Bicycle and Airplane classes
bike = Bicycle()
plane = Airplane()
# Calls the move method on both objects
bike.move()
plane.move()
Godt gået!
Du har lært om polymorfi i Python, og hvordan det gør det muligt for objekter fra forskellige klasser at reagere forskelligt på de samme metodekald. Polymorfi gør din kode mere fleksibel og skalerbar, så den bliver lettere at administrere og udvide. Bliv ved med at øve dig ved at oprette flere klasser og metoder, der bruger polymorf adfærd, for at styrke din forståelse!

Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 22
- Lektioner
- 94
Ofte stillede spørgsmål
Er lektionen “Polymorfi ” gratis?
Ja — hele teksten til “Polymorfi ” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python For Kids-kurset, skal du opgradere til CoddyKit PRO. Python For Kids-kurset indeholder 5 lektioner i alt.
Hvad lærer jeg i “Polymorfi ”?
Udforsk avancerede OOP-koncepter. Du øver dig i Python For Kids med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Python For Kids?
Der kræves ingen tidligere erfaring. Python For Kids på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 5 af 5.
Hvor lang tid tager lektionen “Polymorfi ”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Python For Kids-lektion?
Ja. Alle Python For Kids-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.