Menu
Coddy logo textTech

Temel Kalıtım

Coddy'nin Python Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 17 / 64.

Kalıtım, bir sınıfın başka bir sınıftan öznitelikleri ve yöntemleri miras almasına olanak tanıyarak bir ebeveyn-çocuk ilişkisi oluşturur.

İşte bir ebeveyn sınıf örneği:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def info(self):
        print(f"I am {self.name}, an animal")

Üst sınıftan miras alan bir alt sınıf oluşturun:

class Dog(Animal):
    pass  # Animal sınıfından her şeyi miras alır

class Dog(Animal): söz dizimi, Dog sınıfının Animal sınıfından miras aldığı anlamına gelir. Üst sınıf adını parantez içine yazın.

Her iki sınıftan da nesneler oluşturun:

generic_animal = Animal("Creature")
buddy = Dog("Buddy")

Kalıtılan metotları kullanın:

generic_animal.info()
buddy.info()

Çıktı:

I am Creature, an animal
I am Buddy, an animal

Dog, __init__ veya info tanımlamasa bile, bunları otomatik olarak Animal'dan alır.

Alt sınıfa yeni metotlar ekleyebilirsiniz:

class Dog(Animal):
    def bark(self):
        print(f"{self.name} says Woof!")

buddy = Dog("Buddy")
buddy.info()  # Miras alınan metot
buddy.bark()  # Yeni metot

Çıktı:

I am Buddy, an animal
Buddy says Woof!

Önemli Nokta: Alt sınıflar, üst sınıflarından tüm nitelikleri ve metotları miras alır. Kalıtım oluşturmak için class Child(Parent): sözdizimini kullanın. Bu, kodu yeniden kullanmanıza ve mantıksal sınıf hiyerarşileri oluşturmanıza yardımcı olur.

challenge icon

Görev

Orta
  • vehicle.py: Üst Vehicle sınıfını içerir
  • car.py: Vehicle sınıfından miras alan Car sınıfını içerir
  • driver.py: Uygulamanızı test etmek için ana dosya

Her dosya, uygulama boyunca size rehberlik edecek ayrıntılı TODO yorumları içerir. Şunları yapmanız gerekecek:

  • Vehicle sınıfını make ve model öznitelikleriyle tamamlayın
  • Car sınıfında uygun sınıf kalıtımını uygulayın
  • Dosyalar arasında doğru import ifadelerini ayarlayın
  • driver dosyasında nesneler oluşturun ve test edin

Çözüm için adım adım rehberlik sağladıklarından TODO yorumlarını dikkatlice takip edin.

Kopya kağıdı

Kalıtım, bir sınıfın class Child(Parent): sözdizimini kullanarak başka bir sınıftan nitelikleri ve metotları miras almasına olanak tanır:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def info(self):
        print(f"I am {self.name}, an animal")

class Dog(Animal):
    pass  # Animal sınıfından her şeyi miras alır

Alt sınıflar, tüm üst sınıf metotlarını ve niteliklerini otomatik olarak miras alır:

buddy = Dog("Buddy")
buddy.info()  # Miras alınan metodu kullanır
# Output: I am Buddy, an animal

Miras alınan işlevselliği korurken alt sınıflara yeni metotlar ekleyin:

class Dog(Animal):
    def bark(self):
        print(f"{self.name} says Woof!")

buddy = Dog("Buddy")
buddy.info()  # Miras alınan metot
buddy.bark()  # Yeni metot

Kendin dene

# TODO: vehicle.py dosyasından Vehicle sınıfını içe aktarın
# TODO: car.py dosyasından Car sınıfını içe aktarın

# TODO: Markası "Toyota" ve modeli "Corolla" olan bir Vehicle nesnesi oluşturun
vehicle = None

# TODO: Markası "Honda" ve modeli "Civic" olan bir Car nesnesi oluşturun
car = None

# TODO: vehicle nesnesi üzerinde display_info() metodunu çağırın
# Beklenen çıktı: "Vehicle: Toyota Corolla"

# TODO: car nesnesi üzerinde display_info() metodunu çağırın
# Beklenen çıktı: "Vehicle: Honda Civic"
# Not: Car sınıfı, display_info metodunu Vehicle sınıfından değişiklik yapmadan miras alır
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Object Oriented Programming bölümündeki tüm dersler