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ırclass 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 animalDog, __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.
Görev
Ortavehicle.py: ÜstVehiclesınıfını içerircar.py:Vehiclesınıfından miras alanCarsınıfını içerirdriver.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:
Vehiclesınıfınımakevemodelöznitelikleriyle tamamlayınCarsı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ırAlt 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 animalMiras 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 metotKendin 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ırBu 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
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesnelerself ParametresiMetotlarÖzniteliklerYapıcı Metot (__init__)Özet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtımsuper() FonksiyonuMetot Geçersiz KılmaÇoklu KalıtımMetot Çözümleme SırasıÖzet - Çalışan Hiyerarşisi7Özel Metotlar
Sihirli Metotlara GirişOperatör Aşırı YüklemeKapsayıcı Sihirli MetotlarıÖzet - Özel Liste10Tasarım Kalıpları Bölüm 1
Tasarım kalıplarına girişSingleton KalıbıFactory KalıbıObserver KalıbıStrategy Kalıbı13Final Meydan Okumaları
E-öğrenme PlatformuBankacılık SistemiOyun Karakteri GeliştirmeAraç Kiralama Servisi5Çok Biçimlilik (Polymorphism)
Metot Geçersiz Kılmaya Yeniden BakışDuck TypingSoyut Sınıflar ve MetotlarArayüz TasarımıÖzet - Şekil Hesaplayıcı8İleri Düzey OOP Kavramları
Kompozisyon ve KalıtımMixinsStatik ve Sınıf MetotlarıSınıf DekoratörleriBağlam Yöneticileri11Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit Kalıbı