ÎncepețiÎncepe gratuit

Moștenire pe mai multe niveluri

Ai exersat deja moștenirea simplă și cea multiplă. În acest exercițiu, vei implementa moștenirea pe mai multe niveluri construind o nouă versiune a clasei Smartphone.

Ca punct de plecare, clasele Computer și Tablet sunt deja definite mai jos. Este important de reținut că Tablet moștenește din clasa Computer. Mult 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)

Acest exercițiu face parte din cursul

Programare orientată pe obiecte intermediară în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește o clasă Smartphone care moștenește din Tablet, apelează constructorul părintelui și definește atributul de instanță phone_number.
  • Creează o metodă send_text care trimite un mesaj text (message) unui destinatar (recipient) de la numărul de telefon (phone_number) al obiectului Smartphone.
  • Instanțiază un obiect Smartphone numit personal_phone, apelează metoda sa .browse_internet(), dezinstalează aplicația Weather și trimite mesajul Time for a new mission! lui Chuck, prin SMS.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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")
Editează și rulează codul