*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle
Kalıtım (Inheritance) ve Polimorfizm (Polymorphism), bilgisayar bilimlerinde programlama dillerinde oldukça yaygın olarak kullanılan ve yazılım geliştiricilerin sıkça ihtiyaç duydukları iki kavramdır. Bu yazıda Objective-C programlama dilinde bu kavramlar üzerinde detaylı bir şekilde duracağız.
Kalıtım (Inheritance)
Kalıtım, temel olarak bir sınıfın diğer bir sınıf tarafından miras alınmasıdır. Miras alan sınıf, kalıtım veren sınıfın davranışlarını (metotlarını ve özelliklerini) miras alır. Her sınıfın bir ana sınıfı olsa da, birden fazla sınıfın birleşiminden oluşan hiyerarşik bir yapı da oluşturulabilir.
Objective-C’de kalıtımı gerçekleştirmek için, parent (ebeveyn) sınıfında kişisel olarak yazılmış tüm değişkenler ve fonksiyonlar, alt sınıflardan devralınabilir. Bu işlem, parent sınıfın tanımlandığı yerde yapılabilir. Aşağıdaki örnek, bu işlemi daha iyi anlamanıza yardımcı olabilir.
// Parent Sınıfı
@interface Parent : NSObject {
int a;
}
- (void)methodA;
@end
@implementation Parent
- (void)methodA {
NSLog(@\"Method A çalıştı.\");
}
@end
// Child Sınıfı
@interface Child : Parent {
int b;
}
- (void)methodB;
@end
@implementation Child
- (void)methodB {
NSLog(@\"Method B çalıştı.\");
}
@end
Yukarıdaki örnekte, Child sınıfı, Parent sınıfından inherit (miras) edilmiştir. Child sınıfı, parent sınıfının methodA() fonksiyonunu miras alır ve ayrıca parent sınıfındaki int a değişkenine ek olarak kendine has bir değişken olan int b değişkenini içerir.
Polimorfizm (Polymorphism)
Polimorfizm, birden fazla sınıfın aynı nesne ile çağrılabilmesi anlamına gelir. Bu, çeşitli sınıfların aynı arayüzü (interface’i) uyguladığı durumlarda anyazılır. Bu sayede, aynı fonksiyonlar farklı sınıflar tarafından implemente edilebilir ve aynı zamanda aynı arayüz üzerinden aranabilir.
Objective-C'de; Kalıtım veren ve kalıtım alan sınıflar için standardı bir interface tanımlanır. Böylece kalıtım alan sınıf, kalıtım veren sınıfın davranışını tamamen taklit edebilir.
Aşağıdaki örnek, polimorfizm kavramını kolaylıkla açıklamaktadır.
// Parent sınıfı
@interface Parent : NSObject
- (void)sayHello;
@end
@implementation Parent
- (void)sayHello {
NSLog(@\"Merhaba\");
}
@end
// Child sınıfı
@interface Child : Parent
- (void)sayHello;
@end
@implementation Child
- (void)sayHello {
NSLog(@\"Hello World!\");
}
@end
// Main fonksiyonu
int main(int argc, const char * argv[]) {
@autoreleasepool {
Parent *parent = [[Parent alloc]init];
Child *child = [[Child alloc]init];
[parent sayHello];
[child sayHello];
}
return 0;
}
Yukarıdaki örnekte, Parent sınıfında, \"merhaba\" metni yazdıran sayHello fonksiyonu tanımlanmıştır. Ancak bu fonksiyon, Child sınıfında, \"Hello World\" mesajını yazdıran bir metot ile yeniden yazılmıştır. Parent sınıfının bir üyesi olan bir Parent tipi objeye sayHello fonksiyonu çağrıldığında, \"Merhaba\" metni görünecektir. Ancak, Child sınıfının bir üyesi olan bir Child tipi objeye sayHello fonksiyonu çağrıldığında, \"Hello World\" mesajı görüntülenecektir.
Sık Sorulan Sorular
S. Kalıtım ve Polimorfizm neden gereklidir?
C. Kalıtım, kod tekrarını azaltmak, daha temiz kod yazmak, ve nesne yönelimli programlama (Object-Oriented-Programming) için bir yol sağlamak için gereklidir. Polimorfizm, kod tekrarını azaltmak, aynı arayüzü uygulayarak çok sayıda sınıfı yönetmek için gereklidir.
S. Bir sınıf nasıl kalıtım alır?
C. Bir sınıf, ana sınıfın adını belirterek bir child sınıfının başına @interface
S. Polimorfizm nasıl uygulanır?
C. Polimorfizm, birkaç sınıfın arasında paylaşılan ve aynı arayüzün uygulandığı bir sınıfta uygulanır. Bu sınıf, arayüz üzerinden ortak davranışları paylaşıyor ve bu sınıftaki her sınıf, arayüzü aynı şekilde kullanarak farklı davranışlar üretiyor."
Kalıtım (Inheritance) ve Polimorfizm (Polymorphism), bilgisayar bilimlerinde programlama dillerinde oldukça yaygın olarak kullanılan ve yazılım geliştiricilerin sıkça ihtiyaç duydukları iki kavramdır. Bu yazıda Objective-C programlama dilinde bu kavramlar üzerinde detaylı bir şekilde duracağız.
Kalıtım (Inheritance)
Kalıtım, temel olarak bir sınıfın diğer bir sınıf tarafından miras alınmasıdır. Miras alan sınıf, kalıtım veren sınıfın davranışlarını (metotlarını ve özelliklerini) miras alır. Her sınıfın bir ana sınıfı olsa da, birden fazla sınıfın birleşiminden oluşan hiyerarşik bir yapı da oluşturulabilir.
Objective-C’de kalıtımı gerçekleştirmek için, parent (ebeveyn) sınıfında kişisel olarak yazılmış tüm değişkenler ve fonksiyonlar, alt sınıflardan devralınabilir. Bu işlem, parent sınıfın tanımlandığı yerde yapılabilir. Aşağıdaki örnek, bu işlemi daha iyi anlamanıza yardımcı olabilir.
// Parent Sınıfı
@interface Parent : NSObject {
int a;
}
- (void)methodA;
@end
@implementation Parent
- (void)methodA {
NSLog(@\"Method A çalıştı.\");
}
@end
// Child Sınıfı
@interface Child : Parent {
int b;
}
- (void)methodB;
@end
@implementation Child
- (void)methodB {
NSLog(@\"Method B çalıştı.\");
}
@end
Yukarıdaki örnekte, Child sınıfı, Parent sınıfından inherit (miras) edilmiştir. Child sınıfı, parent sınıfının methodA() fonksiyonunu miras alır ve ayrıca parent sınıfındaki int a değişkenine ek olarak kendine has bir değişken olan int b değişkenini içerir.
Polimorfizm (Polymorphism)
Polimorfizm, birden fazla sınıfın aynı nesne ile çağrılabilmesi anlamına gelir. Bu, çeşitli sınıfların aynı arayüzü (interface’i) uyguladığı durumlarda anyazılır. Bu sayede, aynı fonksiyonlar farklı sınıflar tarafından implemente edilebilir ve aynı zamanda aynı arayüz üzerinden aranabilir.
Objective-C'de; Kalıtım veren ve kalıtım alan sınıflar için standardı bir interface tanımlanır. Böylece kalıtım alan sınıf, kalıtım veren sınıfın davranışını tamamen taklit edebilir.
Aşağıdaki örnek, polimorfizm kavramını kolaylıkla açıklamaktadır.
// Parent sınıfı
@interface Parent : NSObject
- (void)sayHello;
@end
@implementation Parent
- (void)sayHello {
NSLog(@\"Merhaba\");
}
@end
// Child sınıfı
@interface Child : Parent
- (void)sayHello;
@end
@implementation Child
- (void)sayHello {
NSLog(@\"Hello World!\");
}
@end
// Main fonksiyonu
int main(int argc, const char * argv[]) {
@autoreleasepool {
Parent *parent = [[Parent alloc]init];
Child *child = [[Child alloc]init];
[parent sayHello];
[child sayHello];
}
return 0;
}
Yukarıdaki örnekte, Parent sınıfında, \"merhaba\" metni yazdıran sayHello fonksiyonu tanımlanmıştır. Ancak bu fonksiyon, Child sınıfında, \"Hello World\" mesajını yazdıran bir metot ile yeniden yazılmıştır. Parent sınıfının bir üyesi olan bir Parent tipi objeye sayHello fonksiyonu çağrıldığında, \"Merhaba\" metni görünecektir. Ancak, Child sınıfının bir üyesi olan bir Child tipi objeye sayHello fonksiyonu çağrıldığında, \"Hello World\" mesajı görüntülenecektir.
Sık Sorulan Sorular
S. Kalıtım ve Polimorfizm neden gereklidir?
C. Kalıtım, kod tekrarını azaltmak, daha temiz kod yazmak, ve nesne yönelimli programlama (Object-Oriented-Programming) için bir yol sağlamak için gereklidir. Polimorfizm, kod tekrarını azaltmak, aynı arayüzü uygulayarak çok sayıda sınıfı yönetmek için gereklidir.
S. Bir sınıf nasıl kalıtım alır?
C. Bir sınıf, ana sınıfın adını belirterek bir child sınıfının başına @interface
S. Polimorfizm nasıl uygulanır?
C. Polimorfizm, birkaç sınıfın arasında paylaşılan ve aynı arayüzün uygulandığı bir sınıfta uygulanır. Bu sınıf, arayüz üzerinden ortak davranışları paylaşıyor ve bu sınıftaki her sınıf, arayüzü aynı şekilde kullanarak farklı davranışlar üretiyor."
Kristal, Ahşap, Bayrak.. Plaket ihtiyaçlarınıza Mükemmel çözümler üretiyoruz.