Sobes.tech
Junior — Middle

Kannst du ein Beispiel geben, das die verschiedenen Arten von Polymorphismus in der objektorientierten Programmierung veranschaulicht?

sobes.tech KI

Antwort von AI

In der objektorientierten Programmierung ermöglicht Polymorphismus, dass Objekte verschiedener Klassen Methodenaufrufe mit demselben Namen unterschiedlich behandeln.

1. Kompilierungszeit-Polymorphismus (statischer Polymorphismus):

  • Methodenüberladung: mehrere Methoden mit demselben Namen, aber unterschiedlichen Parametern.
class Calculator {
    func add(a: Int, b: Int) -> Int {
        return a + b
    }
    func add(a: Double, b: Double) -> Double {
        return a + b
    }
}

2. Laufzeit-Polymorphismus (dynamischer Polymorphismus):

  • Überschreiben von Methoden in Unterklassen.
class Animal {
    func sound() {
        print("Ein Geräusch")
    }
}

class Dog: Animal {
    override func sound() {
        print("Bellen")
    }
}

class Cat: Animal {
    override func sound() {
        print("Miau")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Gibt "Bellen" und "Miau" aus
}

Auf diese Weise ermöglicht Polymorphismus die Verwendung einer einzigen Schnittstelle zur Arbeit mit verschiedenen Objekttypen.