CodeBlanks Logo Icon CodeBlanks

Özet - Miras alma

super ve override'ı birleştirerek bir şekil hiyerarşisi yazarsın.

Özet - Miras alma

Bu grupta miras alma, super(), geçersiz kılma, çoklu miras ve isinstance/issubclass kavramlarını öğrendik. Çocuk sınıf ebeveyni parantez içinde yazar; super() ile ebeveyn metotları çağrılır.

Geçersiz kılma ile çocuk ebeveyn metodunu yeniden tanımlar. Çoklu miras virgülle ayrılmış ebeveynlerle yapılır; MRO sırası belirleyicidir. Şimdi bu parçaları bir araya getiren bir sınıf yazacağız.

Uygulama Dog sınıfını birleştir

Animal sınıfını tanımla; def __init__(self, species): ve gövdede self.species = species ve def speak(self): ile print("Ses") yaz. Sonra class Dog(Animal): tanımla; def __init__(self, name): ekle, gövdede super().__init__("köpek"), self.name = name yaz; def speak(self): ile print("Hav") yaz. Sonra d = Dog("Karabaş"), print(d.name) ve d.speak() çağrısı yap.

Başlangıç kodu

main.py
# Animal ve Dog sınıflarını birleştir

Örnek çözüm

main.py
# Animal ve Dog sınıflarını birleştir
class Animal:
    def __init__(self, species):
        self.species = species
    def speak(self):
        print("Ses")

class Dog(Animal):
    def __init__(self, name):
        super().__init__("köpek")
        self.name = name
    def speak(self):
        print("Hav")

d = Dog("Karabaş")
print(d.name)
d.speak()

Beklenen çıktı

Karabaş
Hav

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Çocuk __init__ içinde ne yapılır?

  • Ebeveyn __init__'i yok sayılır
  • Sınıf adı değiştirilir
  • Ebeveyn sınıf silinir
  • super().__init__(...) ile ebeveyn çağrılır Doğru cevap

Açıklama: Çocuk __init__ içinde super().__init__(...) açıkça çağrılır.

2 Kavramları eşle

Kavram Anlamı
class Dog(Animal) Miras
super() Ebeveyn çağrısı
def speak(self) Geçersiz kılma

3 Çocuk sınıf tanımını tamamla

Soru
class Dog(____):
    pass
Cevap
class Dog(Animal):
    pass

Açıklama: Dog, Animal'dan miras alır.

Orta seviye bölümündeki tüm dersler