Object Oriented Programlama # 9 - Python Dersleri (Tutorials)
zzan·@elektroyazilim·
0.000 HBDObject Oriented Programlama # 9 - Python Dersleri (Tutorials)
 Merhabalar Python programlama derslerinin bu bölümünde kalıtımın en önemli konularından olan _overriding_ konusundan bahsedeceğim. > Bu ders önceki dersleri takip ettiğiniz varsayılarak anlatılacaktır. Takip etmediyseniz öncelikle onlara bakmanız tavsiye edilir. Önceki derslerimizde kalıtım konusu üzerine örnekler yapmıştık. Bu derste de o dersteki örnekler üzerinden gideceğim ki anlaşılması kolay olsun. Önceki derslerimizde hatırlarsanız okul otomasyon sistemini hayal etmiştik. Okuldaki personelleri, object oriented programlamaya uyarlamaya çalışmıştık. Bu durumda _personel_ adında temel bir sınıf oluşturmuştuk. Sonrasında öğretmen ve işçi bilgilerini tutmak için de _ogretmen_ ve _isci_ adında iki sınıf oluşturup bu sınıfları da _personel_ sınıfından miras aldırmıştık. _personel_ dediğimiz temel sınıf, öğretmen ve işçi sınfının ortak verilerini tutmaktadır. _ogretmen_ ve _isci_ sınıfları bu sınıftan miras aldıkları için _personel_ sınıfındaki özellik ve metotları kullanabilirler. > Böylelikle kod tekrarının önüne geçilmiş olunmaktadır. Şimdi mantığı anlattığımıza göre sınıfları verelim. _personel_ sınıfımız :  _personel_ sınıfı içerisinde özelliklerin olduğu _init()_ fonksiyonu ve ek olarak _bilgileriGoster()_ ve _maasArtir()_ metotları bulunmaktadır. Bu sınıftan miras alan _ogretmen_ sınıfı ise aşağıdaki gibidir :  _ogretmen_ sınıfının parantezleri içerisine miras aldığı personel sınıfı getirilmiştir. _ogretmen_ sınıfı, _personel_ sınıfından miras aldığı için _personel_ sınıfının metotlarını kullanabilir. Tabi bunun için ilk olarak _ogretmen_ sınıfından bir nesne oluşturmalıyız.  _ogretmenC_ nesnesi, _ogretmen_ tipinde bir nesnedir ve constructor sınıfı çağrılırken verdiğimiz değerlerle oluşturulmuştur. _ogretmen_ sınıfı, miras aldığı _personel_ sınıfının özellik ve metotlarını kullanabileceği gibi kendi bünyesinde de özellik ve metot bulundurabilir. Aynı şekilde bunları da kullanabilir. _ogretmen_ sınıfının içerisinde bulunan _bilgileriDegistir()_ metodu, sadece _ogretmen_ sınıfına ait bir metotdur ve herhangi bir _ogretmen_ tipi nesne tarafından kullanılabilir. Uygulamasını görelim :  _bilgileriDegistir()_ metodunun içerisine yeni değerleri vererek çalıştırdık. Sonrasında _bilgileriGoster()_ metodunu çalıştırarak kontrolünü yaptık. Gayet de güzel çalıştı. ## Overriding Peki biz miras aldığımız bir sınıfta bulunan bir metotla aynı isimde bir metot tanımlayabilir miyiz? Örneğin _personel_ sınıfı içerisindeki _init()_ fonksiyonunu biz 3 parametreli değil de 4 parametreli yapmak istersek ne yapmamız gerekir? İşte böylesi bir işlemde _overriding_ kavramı devreye giriyor. Öncelikle uygulamasını görelim :  Görüldüğü gibi _ogretmen_ sınıfı içerisinde _init()_ fonksiyonunu 4 parametreli olarak baştan hazırladık. Sonrasında _ogretmenD_ nesnesini oluştururken 4 parametre verdik. Kodumuzu çalıştırdığımızda hangi _init()_ fonksiyonu çalışacak anlamak için de daha öncesinde _init_ fonksiyonu içerisine kontrol amaçlı bir print() fonksiyonu yerleştirmiştik. Sonuçta ekrana > Öğretmen sınıfının init fonksiyonu yazısı yazıldı. Buradan anlıyoruz ki miras alınan sınıf ve alan sınıf içerisinde aynı isimle iki metot olsa da mirası alan sınıftaki metot dikkate alınıyor. Buna _overriding_ deniliyor. Yani miras alınan sınıftaki aynı isimdeki metodu eziyor. Şimdilik bu kadar. Umarım faydalı bir çalışma olmuştur. Teşekkürler.  Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me
👍 maonx, cocukgelisimi, hdu, imisstheoldkanye, laissez-faire, bluesniper, tungmei, sudefteri, neokuduk, literaturk, rasit, maveraunnehr, soteyapanbot, etasarim, bukiland, yusufyusuf, elektroyazilim, ran.koree, kabasakal, mozer, sbtr, steinhammer, ikiturk, yazilim, etkinlik, tipu, steemitli, discordtr, delabo, vxc, indirim, canercanbolat, iskenderk, itiraf, tartisma, beyazli, kirmizili, yesilli, dergi, kuzeyli, guneyli, dogulu, batili, roportaj, sinanbayrak, bos1234, hots, opo9, gotmu, dasa, nextcol, peterpetrelli, ikiliseyir, siyahli, whalecreator, profitvote, minnowvotes, oceanwhale, oceansbot, crabbot, menandyjose, dailyhouston, brupvoter, steemyoda, luckyvotes, koinbot, steemlike, beautifulwoman, steemfunding, steemst, steemlite,