1. abstract sınıf ve fonksiyonlar için yapmanın elzem olduğu olay.

    diyelim ki elinizde hayvan sınıfı var. her hayvanın belli bir ses çıkardığını biliyoruz, ama hayvanın cinsine göre değişiyor bu sesler. dolayısıyla hayvan sınıfında abstract bir ses_çıkar() metodu oluşturuyoruz. aslında burada genelde ilk tepki "e zaten biz o metodu her class'a yazardık ne gerek var böyle kalıtıma, abstract'a" oluyor. kodunuzu başka birinin okuduğunu veya sizin o sınıfınızdan başka birinin yeni bir hayvan tanımlamak istediğini düşünün. o zaman daha çok anlam kazanır.

    velhasıl base classta soyut fonksiyonu yarattıktan sonra da değişik değişik sınıfları hayvan sınıfından üretiyoruz, abstract olan ses_cikar() metodunu override etmemizi ister derleyici. köpek için print("hav hav"), kedi için print("miyav") olarak override edersiniz.