Python Kalıtımı
Python Kalıtımı
Kalıtım, tüm yöntemleri ve özellikleri başka bir sınıftan miras alan bir sınıf tanımlamamızı sağlar.
Üst sınıf , temel sınıf olarak da adlandırılan, miras alınan sınıftır.
Alt sınıf, türetilmiş sınıf olarak da adlandırılan başka bir sınıftan miras alan sınıftır.
Bir Ebeveyn Sınıfı Oluşturun
Herhangi bir sınıf bir üst sınıf olabilir, bu nedenle sözdizimi başka bir sınıf oluşturmakla aynıdır:
Örnek
Person
ile
firstname
ve lastname
özellikler adında bir sınıf ve bir printname
yöntem oluşturun:
class Person:
def __init__(self, fname, lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname,
self.lastname)
#Use the Person class to create an object, and then
execute the printname method:
x = Person("John", "Doe")
x.printname()
Bir Çocuk Sınıfı Oluşturun
İşlevselliği başka bir sınıftan devralan bir sınıf oluşturmak için, alt sınıfı oluştururken üst sınıfı parametre olarak gönderin:
Örnek
Student
Sınıftan özellikleri ve yöntemleri devralacak adlı bir sınıf oluşturun Person
:
class Student(Person):
pass
Not:pass
Sınıfa başka bir özellik veya yöntem eklemek istemiyorsanız anahtar kelimeyi kullanın .
Artık Student sınıfı, Person sınıfıyla aynı özelliklere ve yöntemlere sahiptir.
Örnek
Student
Bir nesne oluşturmak için sınıfı kullanın ve ardından printname
yöntemi yürütün:
x = Student("Mike", "Olsen")
x.printname()
__init__() İşlevini ekleyin
Şimdiye kadar, özelliklerini ve yöntemlerini ebeveyninden miras alan bir alt sınıf oluşturduk.
__init__()
Fonksiyonu alt sınıfa eklemek istiyoruz ( pass
anahtar kelime yerine).
Not: Sınıf __init__()
, yeni bir nesne oluşturmak için her kullanıldığında işlev otomatik olarak çağrılır.
Örnek
__init__()
Fonksiyonu
Student
sınıfa ekleyin :
class Student(Person):
def __init__(self, fname, lname):
#add properties etc.
İşlevi eklediğinizde, __init__()
alt sınıf artık ebeveynin __init__()
işlevini devralmaz.
Not: Çocuğun __init__()
işlevi , ebeveynin işlevinin mirasını geçersiz kılar
__init__()
.
Ebeveyn işlevinin mirasını korumak için ebeveyn __init__()
işlevine bir çağrı ekleyin __init__()
:
Örnek
class Student(Person):
def __init__(self, fname, lname):
Person.__init__(self, fname, lname)
Şimdi __init__() işlevini başarıyla ekledik ve ebeveyn sınıfın mirasını koruduk ve işleve işlevsellik eklemeye hazırız
__init__()
.
super() İşlevini kullanın
Python ayrıca, super()
alt sınıfın ebeveyninden tüm yöntemleri ve özellikleri miras almasını sağlayacak bir işleve sahiptir:
Örnek
class Student(Person):
def __init__(self, fname, lname):
super().__init__(fname, lname)
İşlevi kullandığınızda super()
, üst öğenin adını kullanmanız gerekmez, üst öğesinden yöntemleri ve özellikleri otomatik olarak devralır.
Özellikler Ekle
Örnek
Sınıfa çağrılan graduationyear
bir
özellik ekleyin :Student
class Student(Person):
def __init__(self, fname, lname):
super().__init__(fname, lname)
self.graduationyear
= 2019
Aşağıdaki örnekte, yıl 2019
bir değişken olmalı ve
Student
öğrenci nesneleri oluşturulurken sınıfa aktarılmalıdır. Bunu yapmak için __init__() işlevine başka bir parametre ekleyin:
Örnek
Bir parametre ekleyin year
ve nesneleri oluştururken doğru yılı iletin:
class Student(Person):
def __init__(self, fname, lname, year):
super().__init__(fname, lname)
self.graduationyear
= year
x = Student("Mike", "Olsen", 2019)
Yöntem Ekle
Örnek
Sınıfa çağrılan welcome
bir
yöntem ekleyin :Student
class Student(Person):
def __init__(self, fname, lname, year):
super().__init__(fname, lname)
self.graduationyear
= year
def welcome(self):
print("Welcome",
self.firstname, self.lastname, "to the class of", self.graduationyear)
Alt sınıfa, üst sınıftaki bir işlevle aynı ada sahip bir yöntem eklerseniz, üst yöntemin mirası geçersiz kılınır.