Commit 640c3c42 by Patryk Czarnik

dziedziczenie - init

parent 98be1b10
...@@ -15,7 +15,14 @@ class Osoba: ...@@ -15,7 +15,14 @@ class Osoba:
class Student(Osoba): class Student(Osoba):
pass def __init__(self, imie, nazwisko, wiek, rok, kierunek):
# Podczas inicjowania obiektu Student powinniśmy wywołać init z klasy Osoba i przekazać do niego wymagane parametry.
super().__init__(imie, nazwisko, wiek)
self.rok = rok
self.kierunek = kierunek
def srednia_ocen(self):
return 4.5
class Sklep: class Sklep:
...@@ -39,9 +46,20 @@ class Sklep: ...@@ -39,9 +46,20 @@ class Sklep:
osoba = Osoba('Ala', 'Kowalska', 40) osoba = Osoba('Ala', 'Kowalska', 40)
student = Student('Bartek', 'Nowakowski', 20) student = Student('Bartek', 'Nowakowski', 20, 1, 'medycyna')
print('osoba:', osoba, 'typu', type(osoba)) print('osoba:', osoba, 'typu', type(osoba))
print('student:', student, type(student)) print('student:', student, type(student))
# Zarówno obiekt osoba, jak i student, mają te atrybuty, które były zdefiniowane w klasie Osoba.
# Tylko obiekt typu Student posiada atrybuty dodane w klasie Student.
print('dane osoby:', osoba.imie, osoba.nazwisko)
#ERR print('dane osoby:', osoba.imie, osoba.nazwisko, osoba.kierunek)
print('dane studenta:', student.imie, student.nazwisko, student.kierunek)
# Tylko obiekty klasy Student posiadają dodatkową metodę srednia_ocen
#ERR print('średnia ocen osoby:', osoba.srednia_ocen())
print('średnia ocen studenta:', student.srednia_ocen())
print()
osoba.przedstaw_sie() osoba.przedstaw_sie()
student.przedstaw_sie() student.przedstaw_sie()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment