Temel Kalıtım
Coddy'nin Python Journey'sinin Nesne Yönelimli Programlama 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ığını ifade eder. Ü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 da 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 kalıtım alanCarsınıfını içerirdriver.py: Uygulamanızı test etmek için ana dosya
Her dosya, uygulama boyunca size yol gösterecek ayrıntılı TODO yorumları içerir. Şunları yapmanız gerekecek:
Vehiclesınıfını make ve model öznitelikleriyle tamamlamakCarsınıfında uygun sınıf kalıtımını uygulamak- Dosyalar arasındaki doğru import ifadelerini ayarlamak
- Driver dosyasında nesneler oluşturmak ve test etmek
Çözüm için adım adım rehberlik sağladıklarından TODO yorumlarını dikkatlice takip edin.
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ırBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama 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ıKendi başına pratik yap: Online Python derleyicisi