Mål: Se hur generics kan användas med klasshierarkier.

  1. Skapa en superklass Message och två subklasser: SMS och Email. Varje subklass ska ha ett content-attribut.
  2. Skapa en generisk klass MessageHandler[T] som kan ta emot och hantera objekt av en viss meddelandetyp.

Använd följande kod till uppgiften:

from typing import Generic, TypeVar

T = TypeVar('T')

class Message:
    def __init__(self, content):
        self.content = content

class SMS(Message):
    pass

class Email(Message):
    pass

class MessageHandler(Generic[T]):
    def __init__(self, message: T):
        self.message = message

    def show(self):
        print(f"Innehåll: {self.message.content}")

Uppgift:

  1. Skapa ett objekt av MessageHandler[SMS] och ett av MessageHandler[Email].
  2. Testa metoden show().