Etiket Arsivleri

Inheritance, Miras, Kalıtım

İster kalırım, ister miras deyin, teknik olarak da inheritence olarak adlandırdığımız şey, daha önceden oluşturulmuş bir classa ait özelliklerin bir başka class içinde kullanılması işlemidir. Yani örneklersek, ben bir class ürettim, ayrıca bir class daha üretiyorum, bu yeni ürettiğim classta da bir takım özellikleri tanımladım. Ama bu class aynı zamanda daha önce ürettiğim classın da özelliklerine sahip olacak, bunun için …

Daha Fazlasi

Interface Inheritence (Arayüzden Miras Alma)

Tıpkı classlarda olduğu gibi interfacelerden de inheritence alınabilmektedir. Tanımlama aynı şekildedir. Birbirinden inheritence alan interfaceler içlerinde implemente edilmezler fakat birbirinden inheritence alınan interfaceleri kullanan bir class içinde bunların implemente edilmesi gerekmektedir. Aşağıdaki örneğe bakalım : Peki diyelim ki aynı metot adı birbirine miras veren interface içlerinde geçiyor. Bu durumda hangisi çalışacak? Bu durumda derleyici miras almış olan interface içindeki metotu …

Daha Fazlasi

Interface (Arayüz)

Interfaceler, class veya struct gibi türler için oluşturulmuş modellerdir. Sınıflar değişkenleri, özellikleri, olayları, metotları ve indeksleyicileri tanımlar ve içeriklerini oluşturur, arayüzler ise bir sınıfın temelde hangi üyelerden oluşacağını belirleyen bir nevi şablon yapılarıdır. Bu sayede oluşturulacak sınıflara öncülük edilir ve içermeleri gereken üyelerin ne olacağının standardı belirlenir. Genelde büyük ölçekli projelerde önem kazanmaktadırlar. Arayüzleri interface anahtar sözcüğü ile tanımlarız. Ara …

Daha Fazlasi

sealed Anahtar Sözcüğü

sealed kelime anlamı olarak mühürlenmiş demektir. Bazı durumlarda oluşturulan bir class’dan türeme yapılmasını istemeyebiliriz. Bunu engellemek için üretilen class eğer sealed olarak tanımlanırsa bu classdan inheritence alınamaz. Bu durumu hangi şartlarda kullanabiliriz? Örneğin bir class kütüphane olarak yapılmış olsun. Veya bir windows kontrol uygulaması için bir class yazıldığını düşünelimç Bu classın bir başkası tarafından extend edilmesini istemiyorsak veya modify edilmesini …

Daha Fazlasi

Abstract Class – Soyut Sınıf – Özet Sınıf

Özet sınıflar ya da özet metotlar abstract anahtar sözcüğü kullanılarak tanımlandırılmaktadırlar. Bir temel sınıf içinde bildirilen abstract metotların içeriği boştur. Kendisinden yeni bir instance alınamayan ama miras veren sınıflarlardır. İçinde abstract metotlar bulunur ama bu metotların içi boştur ve bu metotlar override edilmek zorundadır, aksi halde derleyici hata verir. Abstract aslında bir yandan da virtual demektir, virtualda override zorunluğu yok …

Daha Fazlasi

Virtual Methods – Sanal Metotlar

Virtual methods (sanal metotlar), base class (temel sınıf) içinde bildirilmiş ve derived class (türemiş sınıf) içinde de tekrar bildirilebilen metotlardır. Böylelikle sanal metotlar kullanılarak nesne yönelimli programlama da çok sık başvurulan çok biçimliliği yani poliformizm (polimorphizm) uygulanmış olur. Yani temel sınıfta bir sanal metot bildirildiğinde bu temel sınıftan türeyen sınıflardaki metotlar override edilerek, temel sınıftaki sanal metotu devre dışı bırakabilirler. …

Daha Fazlasi

Name Hiding (Üye Gizleme – Shadowing)

Bazı durumlarda base class?da olan bir metot, bir üye ismi ile kendisinden türeyen derived class içindeki bir metot, üye tamamen aynı olabilir, aynı olmasını isteyebiliriz. İşte böyle bir durumda base class?da aynı isme sahip üyeye erişmek mümkün olmaz, çünkü derived class?daki üye base?deki üyeyi gizlemiştir. Bu durumda derleyici bir hata vermez fakat bir uyarı (warning) verecektir. Bu uyarıda eğer bu …

Daha Fazlasi

base ve this Sözcüğü

C#?ta base anahtar sözcüğü ile doğrudan temel sınıfın kendisine ulaşılabilir. Bununla alakalı bir örnek yaparsak : Görüldüğü gibi, alt sınıflarda base kullanımı sonucunda base classa direkt değil, kendisinin bir önceki türediği classa ulaşılıyor. Yani A3?teki base anahtar sözcüğü ile A2 kastedilirken, A2?deki base anahtar sözcüğü ile A1 kastediliyor. Bir başka base kullanım örneği : Buna ek olarak ayrıca this sözcüğü …

Daha Fazlasi

Inheritence – Miras Alma (Kalıtım)

Inheritence nesne yönelimli programlamanın en önemli özelliklerinden biridir, miras alma yolu ile sınıflar birbirinden türetilebilir. Yani mevcut sınıflardan yeni bir sınıf üretme şekli olarak tanımlanabilir.  Bu işlemde, türeyen sınıflar derived class (türemiş sınıf), kendisinden yeni sınıfların oluşturulduğu sınıflara ise base class (temel sınıf) adı verilir. Türeyen sınıflar, türedikleri sınıfların özelliklerini devralırlar, bununla birlikte kendilerine de özel olarak özellikleri mevcuttur. .NET …

Daha Fazlasi