Kalıtım, nesne yönelimli programlamanın temel bir kavramıdır ve kodun verimli ve yeniden kullanılabilir şekilde tasarlanmasını sağlar. Bu kılavuzda kalıtımın ne anlama geldiğini ve bunu pratikte nasıl uygulayabileceğini öğreneceksin. Odak noktası, C#’da bir temel sınıf ve ilgili alt sınıfların oluşturulmasıdır. Hadi adımlara doğrudan dalalım.
Önemli bulgular
- Kalıtım, alt sınıfların özellikleri ve yöntemleri bir temel sınıftan devralarak kodun yeniden kullanımını sağlar.
- “private” ve “protected” gibi erişim belirleyicileri, hangi sınıfların hangi özelliklere erişebileceğini kontrol eder.
- Konstruktorların tanımı ve uygulanması alt sınıflar için hayati öneme sahiptir.
- Alt sınıflar, temel sınıfın yöntemlerini geçersiz kılabilir veya bunlara eklemeler yapabilir ve kendilerine özgü özelliklere uyarlayabilirler.
Adım adım kılavuz
Temel sınıfın oluşturulması
Kalıtıma başlamak için, ilk olarak temel sınıf olan Araba’yı oluştur. Bunu, projenizde yeni bir sınıf oluşturarak ve ona Araba adını vererek yapabilirsin. Bu sınıf, hem binek araçlar hem de ticari araçlar için geçerli olan ortak özellikleri içerecektir.

Bu temel sınıfta, tüm araçlar için geçerli olan özellikleri tanımlayacağız. Örneğin, model, depo kapasitesi, yakıt tüketimi ve yolculuk maliyetleri gibi unsurları içerir. Ayrıca, sınıfı soyut olarak ayarlayacağız, böylece bu sınıftan nesneler oluşturulamaz.
Özelliklerin ve yapılandırıcıların tanımı
Artık Araba sınıfında belirli özellikleri tanımlama zamanı geldi. Alt sınıfların bu özelliklere erişebilmesi için korumalı (protected) erişim belirleyicisini kullanıyoruz.
Ayrıca, yukarıda belirtilen özellikleri başlatan bir yapılandırıcı (constructor) tanımlıyorsun. Bu, bu ortak unsurlara dayanarak PKW (kişisel araç) ve LKW (kamyon) alt sınıflarının yeni nesnelerini oluşturmanı sağlar.
Alt sınıfların oluşturulması
Temel sınıf Araba tanımlandıktan sonra, PKW ve LKW alt sınıflarını oluşturabilirsin. Bu alt sınıflar, Araba'nın özelliklerini miras alır ve belirli özellikler ekleyebilir. PKW oluşturmak için yeni bir sınıf oluştur ve bunun Araba’dan miras aldığını belirt.

Alt sınıf PKW'de ek özellikler
Şimdi PKW sınıfında daha fazla belirli özellik tanımlayabilirsin. Örneğin, PKW’lerin otoyol sürüşü için gerekli olan bir etiket (vignette) ihtiyacı vardır.
Şimdi hem temel sınıfın hem de alt sınıfın belirli özelliklerinin değerlerini başlatan bir yapılandırıcıya ihtiyacın var.
Belirli yöntemlerin uygulanması
Alt sınıf oluşturulduktan sonra, yolculuk maliyetlerini hesaplamak için belirli yöntemler oluşturacaksın. Bu yöntemi, hem temel sınıftan gelen temel hesaplamayı hem de alt sınıfın belirli özelliklerine dayanan ek hesaplamaları gerçekleştirmek için aşırı yükleyebilirsin.
Oluşturulan sınıfların kullanımı
Sınıflar uygulandıktan sonra, nihayet bu alt sınıfların nesnelerini oluşturman gerekiyor. Bu sayede uyguladığın işlevselliği test edebilirsin.
Özet - C# Kalıtımının Temellerini Anlamak
Kalıtım, nesne yönelimli programlamada kodu verimli bir şekilde yapılandırmanıza ve bakım yükünü en aza indirmenizi sağlayan anahtar bir kavramdır. Temel ve alt sınıflar oluşturarak, farklı araç tipleri için belirgin bir hiyerarşi ve özel özellikler ile yöntemler tanımlayabilirsiniz. Özellikleri ve yöntemleri bir temel sınıfta nasıl belirleyeceğinizi ve alt sınıfların bunları nasıl miras alabileceğini veya işlevselliğini nasıl genişletebileceğini öğrendiniz.
Sıkça Sorulan Sorular
Nesne yönelimli programlamada kalıtımın avantajları nelerdir?Kalıtım, kodun tekrar kullanılmasını sağlar, bakım işini kolaylaştırır ve belirgin bir hiyerarşi oluşturur.
Abstrakt bir sınıf nedir?Abstrakt bir sınıf, nesne olarak oluşturulamayacak bir sınıf olup, genellikle diğer sınıflar için temel sınıf olarak hizmet eder.
Erişim belirleyicisini nasıl tanımlarım?Bir erişim belirleyici, sınıf tanımında özelliklerin veya yöntemlerin önünde belirtilir, örneğin public, private veya protected.
Alt sınıflarda yöntemleri nasıl özelleştirebilirim?Alt sınıflarda yöntemleri geçersiz kılarak işlevselliğini uyarlayabilir veya genişletebilirsin.
Alt sınıflarım için yapılandırıcılar nasıl oluşturabilirim?Alt sınıflarda, temel sınıfın yapılandırıcısını çağıran ve alt sınıfın belirli özelliklerini başlatan yapılandırıcılar tanımlayabilirsin.