Aan de slagGa gratis aan de slag

Meerlagige overerving

Je hebt inmiddels geoefend met zowel enkelvoudige als meervoudige overerving. In deze oefening implementeer je meerlagige overerving door een nieuwe versie van de klasse Smartphone te bouwen.

Om je op weg te helpen, zijn de klassen Computer en Tablet hieronder gedefinieerd. Let erop dat Tablet erft van de klasse Computer. Succes!

class Computer:
  def __init__(self, brand):
    self.brand = brand

  def browse_internet(self):
    print(f"Using {self.brand}'s default internet browser.")

class Tablet(Computer):
  def __init__(self, brand, apps):
    Computer.__init__(self, brand)
    self.apps = apps

  def uninstall_app(self, app):
    if app in self.apps:
      self.apps.remove(app)

Deze oefening maakt deel uit van de cursus

Gevorderde objectgeoriënteerde programmering in Python

Cursus bekijken

Oefeninstructies

  • Definieer een klasse Smartphone die erft van Tablet, roep de ouderconstructor aan en definieer het attribuut op instanceniveau phone_number.
  • Maak een methode send_text die een tekst message deelt met een recipient vanaf het phone_number van de Smartphone.
  • Maak een Smartphone-object met de naam personal_phone en roep de methode .browse_internet() aan; verwijder de app Weather, en stuur het bericht Time for a new mission! via sms naar Chuck.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Create a Smartphone class that inherits from Tablet
class ____(____):
  def __init__(self, brand, apps, phone_number):
    ____.____(self, ____, ____)
    self.phone_number = ____
  
  # Create send_text to send a message to a recipient
  def ____(self, message, recipient):
    print(f"Sending {____} to {____} from {____.____}")

# Create an instance of Smartphone, call methods in each class
____ = Smartphone("Macrosung", ["Weather", "Camera"], "801-932-7629")    
personal_phone.____()
personal_phone.____("____")
personal_phone.____("____", "Chuck")
Code bewerken en uitvoeren