iOS 102Başlangıç seviyesi derslerde iOS uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

Çok Biçimlilik (Polymorphism)

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 22.07.2018 tarihinde güncellendi
Eğitmen : Geleceği Yazanlar Ekibi
Etiketler : swift nesneye yönelik

 

Nesneye yönelik programlamanın önemli özelliklerinden biri de çok biçimliliktir. Çok biçimlilik için çeşitli ve farklı tanımlar olmakla birlikte biz burada pratik kullanım açısından da çok faydalı gördüğümüz iki tanımı örneklerle birlikte vereceğiz:

I. Çok biçimlilik, bir sınıf içinde aynı isimde fakat farklı içerikte metotlar kullanabilme özelliğidir.

 

ÖRNEK:


 

class A{
    
    func top(a:Int)->Int{
        
        return a * a}
    
    func top(a:Double)->Double{
        
        return a * a * a}
    
    func top(a:String)->String{
        
        return a + a }
    
}

var x=A()

print( x.top(a:5))

print( x.top(a:5.5))

print( x.top(a:"55.89"))

Programın çıktısı ise aşağıdadır:

 

25

166.375

55.8955.89

 

Yukarıdaki örnekte, top adlı metot 3 farklı şekilde oluşturulmuştur:

1. Int türü bir sayı alıp bunun karesini gönderen

2. Double türü bir sayı alıp bunun kübünü gönderen

3. String türü bir değer alıp bunun bir kopyasını kendisine ekleyen

 

II. Çok biçimlilik, aynı metodun değişik sınıflar içinde yer alabilme imkanıdır.

 

ÖRNEK:

class A{
    
    func fakt(n:Int)->Int
        
    {var f=1
        
        for i in 1...n
            
        {f=f*i}
        
        return f
        
    }
    
}

class B{
    
    func fakt(n:Int)->Int
        
    {var f=1
        
        for i in 1...n
            
        {f=f*i}
        
        return f
        
    }
    
}

let aa=A()

let bb=B()

let n=5

print("\(n)!=\(aa.fakt(n:n))")

print("\(n)!=\(bb.fakt(n:n))")

 

Programın çıktısı ise aşağıdadır:

 

5!=120

5!=120

 

Yukarıdaki örnekte ise A ve B gibi iki farklı sınıf içinde fakt adlı metot aynı içerikle oluşturulmuş ve çağrılmıştır.