Turkcell | Geleceği Yazanlar

Mobil Programlama

iOS

DERS PROGRAMI
Swift ile iOS 101 Ders Programı

Çok Biçimlilik (Polymorphism)

Lisans: Creative Commos (by-nc-sa)02.03.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler:Eğitmen: Geleceği Yazanlar Ekibi

 

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.