Polymorfisme
Utforsk avanserte OOP-konsepter.
Polymorfisme er en gratis leksjon i Python For Kids på CoddyKit. Dette er leksjon 5 av 5. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python For Kids, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python For Kids inneholder totalt 5 leksjoner.
Polymorfisme
Velkommen tilbake til leksjonen om objektorientert programmering (OOP)! I dag skal vi utforske polymorfisme i Python, et kraftig konsept som gjør at objekter kan ha flere former.

Hva er polymorfisme?
Polymorfisme er et grunnleggende konsept i OOP som gjør at objekter fra forskjellige klasser kan behandles som objekter av en felles superklasse. Det gjør at den samme metoden kan oppføre seg forskjellig, avhengig av hvilket objekt som kaller den.
- Definisjon: «Mange former» – muligheten for at forskjellige objekter reagerer på en unik måte på det samme metodekallet.
- Formål: Gir mer fleksibel og integrert kode ved å tillate at objekter kan byttes ut med hverandre.
La oss se hvordan polymorfisme fungerer i Python!
Implementering av polymorfisme
Polymorfisme kan oppnås i Python gjennom overstyring av metoder og ved å bruke innebygde funksjoner som fungerer med forskjellige objekttyper.
- Overstyring av metoder: Å redefinere en metode i en underklasse som allerede er definert i superklassen.
- Innebygde funksjoner: Funksjoner som
len(), som fungerer med ulike datatyper.
La oss se nærmere på overstyring av metoder.
Overstyring av metoder
Overstyring av metoder gjør det mulig for en underklasse å tilby en spesifikk implementasjon av en metode som allerede er definert i superklassen. Dette er en viktig del av polymorfisme.
Eksempel:
# Defines the Animal parent class with a speak method
class Animal:
def speak(self):
print("The animal makes a sound.") # Generic speak method
Opprette underklasser med overstyrte metoder
La oss opprette underklasser som arver fra Animal, og overstyre speak-metoden for å gi dem spesifikk atferd.
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
Bruke polymorfisme med overstyrte metoder
Nå skal vi opprette objekter av underklassene og se hvordan de viser forskjellig atferd ved å bruke det samme metodenavnet.
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.
Polymorfisme med innebygde funksjoner
Polymorfisme er ikke begrenset til brukerdefinerte klasser. Pythons innebygde funksjoner, som len(), fungerer med forskjellige datatyper og demonstrerer dermed polymorf atferd.
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 av arealet til figurer
La oss opprette et program som beregner arealet til forskjellige figurer ved hjelp av polymorfisme. Vi definerer en superklasse, Shape, og underklassene Circle og Rectangle, som overstyrer area-metoden.
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 jobbet!
De har lært om polymorfisme i Python, og hvordan det gjør at objekter fra forskjellige klasser kan reagere unikt på de samme metodekallene. Polymorfisme gjør koden mer fleksibel og skalerbar, slik at den blir enklere å administrere og utvide. Fortsett å øve ved å opprette flere klasser og metoder som bruker polymorf atferd, slik at forståelsen Deres blir enda bedre!

Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 22
- Leksjoner
- 94
Ofte stilte spørsmål
Er leksjonen «Polymorfisme» gratis?
Ja – hele teksten i «Polymorfisme» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python For Kids-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python For Kids inneholder totalt 5 leksjoner.
Hva lærer jeg i «Polymorfisme»?
Utforsk avanserte OOP-konsepter. Du øver på Python For Kids med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Python For Kids?
Ingen tidligere erfaring er nødvendig. Python For Kids på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 5 av 5.
Hvor lang tid tar leksjonen «Polymorfisme»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Python For Kids-leksjonen?
Ja. Alle Python For Kids-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.