Python Alt Sınıflar
	Python'da bir sınıfın benzer özelliklere sahip alt sınıfları oluşturulabilir. Miras alma (inheritance) olarak bilinen bu yöntemle, örnek alınan sınıfa ait tüm özellikler ve yöntemler yeni tanımlanan sınıfta da bulunur.
 PYTHON Kodu
class Kisi:
  def __init__(self, isim, yas):
    self.isim = isim
    self.yas = yas
class Ogrenci(Kisi):
  pass
p1 = Ogrenci("Murat", 36)
print(p1.yas)
 
 
Yukarıdaki örnekte 
Ogrenci isimli bir sınıf oluşturulmuş ve bu sınıfın 
Kisi sınıfının alt sınıfı olduğu sınıfın sol tarafında parantez içinde sınıf adı yazılarak belirtilmiştir.
__init__() Fonksiyonunu Kullanmak
Bir önceki dersimizde bu fonksiyonun sınıfların temel yapıcı fonksiyonu olduğundan bahsetmiştik. Yeni bir nesne yaratıldığında öncelikle çalıştırılırlar. Alt sınıflarda da bu fonksiyon kullanılabilir. Ancak kullanılırsa miras aldığı sınıfa ait __init__() fonksiyonu geçersiz olacaktır.
 PYTHON Kodu
class Kisi:
  def __init__(self, isim, yas):
    self.isim = isim
    self.yas = yas
class Ogrenci(Kisi):
  def __init__(self, isim, sinif):
     self.isim = isim
     self.sinif = sinif
p1 = Ogrenci("Murat", "9/A")
print(p1.sinif)
 
 
Yukarıdaki örnekte Ogrenci sınıfı içindeki yas özelliğini kaldırarak sınıf özelliği ekledik ve ekrana yazdırdık. Eğer örnek aldığı sınıfa ait __init__() fonksiyonunun da geçerli olmasını istiyorsak aşağıdaki kodu kullanabiliriz:
 PYTHON Kodu
class Kisi:
  def __init__(self, isim, yas):
    self.isim = isim
    self.yas = yas
class Ogrenci(Kisi):
  def __init__(self, isim, yas, sinif):
     Kisi.__init__(self, isim, yas)
     self.sinif = sinif
p1 = Ogrenci("Murat", 36, "9/A")
print(p1.sinif)
 
 
Alt sınıfın __init__() fonksiyonunda yer vereceğimiz 
<sınıf>.__init__(...), önceki sınıfa ait isim ve yas özelliklerinin de Ogrenci sınıfı için kullanılmasını sağlamıştır.
Yukarıda örneği alınan sınıfın adını yazmak yerine 
super() fonksiyonu kullanılabilir. Yani yukarıdaki örnek için 
super().__init__(self, isim, yas) şeklinde kullanım da doğrudur.
UYARI: Alt sınıflarda kullandığınız fonksiyon/yöntem ya da özellikler her zaman miras aldığı sınıfın özelliklerini gölgeleyecek ve üstüne yazacaktır.
 PYTHON Kodu
class Kisi:
  def __init__(self, isim, yas):
    self.isim = isim
    self.yas = yas
  def yazdir(self):
    print("Hoş geldin", self.isim)
class Ogrenci(Kisi):
  def __init__(self, isim, yas, sinif):
     Kisi.__init__(self, isim, yas)
     self.sinif = sinif
  def yazdir(self):
     print("Hoş geldin, sevgili öğrencimiz", self.isim)
p1 = Ogrenci("Murat", 36, "9/A")
p1.yazdir()