iOS – Swift Dersleri (Kalıtım)

Merhaba Arkadaşlar,
Mobilhanem‘deki Swift derslerimize devam ediyoruz. Önceki derslerimizde sınıf ve obje kavramlarına değinmiştik. Bu paylaşımda sınıflar ile ilgili, oldukça sık kullanımı olan kalıtım (inheritance) kavramını anlamaya çalışacağız.

Inherit kelime anlamı olarak kalıtımla kazanmak, miras almak anlamına gelir. Object oriented programlama dillerinde kalıtım (inheritance) bir siniftan aynı özellikleri taşıyan başka bir sınıf üretmek anlamına gelir. Yeni üretilen sınıfa alt sınıf (subclass) yeni sınıfın üretilmesinde kullanılan sınıfa da süper sınıf (superclass) diyoruz. Hiçbir sınıftan üremeyen sınıflara temel sınıf (baseclass) diyoruz.

Aşağıdaki örnekteki temel sınıf Arac sınıfıdır; hiçbir sınıftan türememiştir. tekerlekSayisi ve enFazlaYolcuSayisi adinda iki tane property’e sahiptir. String tipi dönen aracTanimi isminde bir metodu vardır. Obje oluşturulduğunda çalışan bir init metoduna sahiptir.

Overriding

Alt sınıflar türetildikleri süper sınıfların tüm karakteristik özelliklerini taşırlar. Süper sınıfın bütün property, metod vs. özellikleri alt sınıfta da vardır. Bazı durumlarda alt sınıfın bir özelliğini değiştirme, alt sınıfa özel hale getirme ihtiyacı duyulabilir. Bu tür durumlara overriding denir. Aşağıdaki örnekten inceleyecek olursak Arac sınıfının aracTanimi metodu Araba sınıfında override edilmiştir. Artık Araba sınıfının aracTanimi metodu Araba sinifindaki yazildigi halidir. Bu overriding Arac sınıfının (süper sınıf) metoduna etki etmez.

Süper Sınıfın Property, Metod ve Alt scriptlerine ulaşma

super kelimesi ile yapilir:
metodlar için; super.method()
property için; super.someProperty
alt scriptler için; super[someIndex] şeklinde ulaşılır. Burada super kelimesi süper sınıfı ifade eder.

Override’ı önleme

Bir propery, metod veya alt scriptin alt sınıflarda override edilmesini engellemek için final kelimesi kullanılır. Örneğin;
final var, final func, final class func, final subscript

final propery, metod veya alt script override edilmek istendiğinde derleyici hata verecektir (compile-time error).

Aşağıdaki örnekte kalıtım konusu ile ilgili yukarıda işlenen konuların örneklendiği kodu bulabilirsiniz:

Aşağıdaki gibi test ediyoruz:

Bu paylaşımda Swift’te katılım (inheritance) konusunu incelemeye çalıştık. Temel anlamda nasıl kullanıldığını basit örneklerle inceledik. Mobilhanem‘de Swift ile ilgili paylaşımlara devam edeceğiz.

Kaynak: developer.apple.com

iOS – Swift Dersleri (Property List Kullanımı (Plist))

0

Aycan Ayhan

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?