Swift 5.3 OOP 2|Inheritance (Miras Kalıtım Kavramı)

Swift dilinde Miras Almayı inceliyoruz.Öncelikle Swift dilinde birbirine benzeyen temel 2 yapı vardı:Class Ve Struct . Önce bilmemiz gereken Struct yapısı Class gibi miras işlelerine karışamaz çünkü öyle bir özellik yok onlarda 🙂 Ancak miras işlemini Class üzerinden yapabilirim.

Nedir Miras Olayı ?

Kalıtım diye geçer , bazı kaynaklarda miras diye de bilinir 🙂 Inheritance yapısı olarak bilinir.Miras Kavramını şöyle özetleyelim.Bir canlı olan bir Class tanımlayalım ve bir de ayrı olarak insan Class’ı tanımlayalım.Şimdi biz diyelim Canlı Class’ı nün tüm özelliklerini yani içinde bulunan değişken, method gibi şeyleri insan Class’ında kullanmak istiyoruz .

EEE o zaman aynısından ona tanımlayalım ?? Hayır Olmaz 🙂 İşte tekrar tekrar tanımlar yapmaya gerek kalmadan miras yapsını kullananlara bu özellikleri kullanıyoruz.Miras vermeyene Class’a Base Class diyoruz.Miras alan Class’a ise SubClass diyoruz.

Şimdi Örneğe bakalım:

  • Canlı diye ve insan diye 2 ayrı class tanımladım.
  • Canlı Class’ına bazı değişkenler atadım.
  • İnsan Class’ına :canli ifadesi ile miras aldırdım ve artık insan Class’ı Canlı Class’ı üzerinde ki her şeyi kullanabilir.(Değişken Method vs)
  • İnsan Class’ı üzerinden bir nesne tanımladım ve nesnemi insan Class’ından tanımlamama rağmen ve insan Class’ının içinde isim,cins,yas gibi tanımlamalar olmamasına rağmen, canli sınıfından miras aldırdığım için değişkenlere verilerimi atayabildim.
  • Birde insan Class’ ait özel olarak tanımladığımız. maaş durumu var çünkü insanlarım maaşı olur 🙂 Ama her canlının maaşı olucak diye Bişi yok (Kedi köpek vs) . İnsan class’ına ait özel değişkenkeride yine nesnene üzerinden kullanabiliyorum yani sadece miras aldığın sınıfın özelliklerini kullanabilirisn diye bir durum yok.

Bisiklet Örneği Yapalım:

  • Bisiklet ve Elektiriklibisiklet sınıfı tanımladım.Her 2 sınıfında kendine ait özellikleri var.
  • Elektrikli bisikletlerin tabi ki markası vites sayısı jant boyutu olduğu için bisiklet sınıfından miras aldırdım.
  • Her 2 sınıfıda bisiklet vermesi için kendisine özel bir fonksiyon hazırladım.
  • Bike diye bir bisiklet sınıfından nesne tanımladım.
  • Bike nesnem üstünden bisikletver fonksiyonu çağırdım.
  • ebike diye elektriklibisiklet Sınıfı üstünden bir nesne tanımladım
  • Böylelike tek nesne ile bisiklet sınıfının içinden ki fonksiyonuda çağırmış oldum hemde elektriklibisiklet için yazdığım fonksiyonu çağırdım.

Leave a Reply

*