C# Abstract Classes (Soyut Sınıflar)
C# dilinde abstract class (soyut sınıf), diğer sınıflar için bir şablon veya temel sınıf sağlayan ve aynı zamanda tamamlanmamış veya uygulanmamış yöntemler içerebilen bir sınıf türüdür. Soyut sınıflar genellikle bir arayüz (interface) ve somut bir sınıf arasında bir köprü görevi görür.
- Soyut Sınıf (Abstract Class) Tanımı:
- Bir sınıfı soyut yapmak için abstract anahtar kelimesi kullanılır.
- Soyut sınıflar, tamamlanmamış yöntemleri (metodları) içerebilir. Yani, soyut sınıfın kendisi tamamlanmamış olabilir.
- Tamamlanmış yöntemler de içerebilir. Bu yöntemlerin gövdesi, alt sınıflar tarafından değiştirilmeden kullanılabilir.
- Soyut Sınıfın Kullanım Amacı:
- Soyut sınıflar, belirli bir nesnenin genel yapısını tanımlamak için kullanılır. Ancak, bu sınıfın tam olarak nasıl uygulanacağı belirli alt sınıflara bırakılır.
- Soyut sınıflar, kodun yeniden kullanılabilirliğini artırır ve benzer nesneler arasında ortak özellikleri ve davranışları tanımlamak için kullanılır.
- Soyut Sınıfın Özellikleri:
- Soyut sınıfların doğrudan örnekleri oluşturulamaz. Yani, soyut sınıf türünde bir nesne oluşturulamaz.
- Soyut sınıflar, alt sınıfların temelini oluşturmak için kullanılır. Alt sınıflar, soyut sınıftan kalıtım alır ve soyut metotları (eğer varsa) uygular.
- Soyut Metotlar (Abstract Methods):
- Soyut sınıflar içinde tanımlanan ancak gövdesi olmayan metotlardır.
- Alt sınıflar, soyut metotları implemente etmek (gövdesini sağlamak) zorundadır.
- Soyut metotlar, abstract anahtar kelimesi ile tanımlanır ve noktalı virgül ile sonlandırılır.
- Alt Sınıfların İmplementasyonu:
- Alt sınıflar, soyut sınıftan miras alırken soyut metotları uygulamak zorundadır. Aksi takdirde, alt sınıf da soyut olarak işaretlenmelidir.
- Alt sınıf, soyut sınıftan kalıtım aldığında, soyut metotları gerçek bir gövde sağlayarak uygulamak zorundadır.
- Soyut Sınıfların Avantajları:
- Kod tekrarını azaltır ve yeniden kullanılabilirliği artırır.
- Kodu daha modüler hale getirir ve bakımını kolaylaştırır.
- Bir arayüzün sunduğu esnekliği sağlarken, somut bir sınıfın sunduğu işlevselliği de sağlar.
abstract class BaseClass
{
// Tamamlanmamış (abstract) metot
public abstract void AbstractMethod();
// Tamamlanmış metot
public void ConcreteMethod()
{
Console.WriteLine("Concrete method in abstract class");
}
}
Soyut sınıflar, C# dilinde güçlü bir araçtır ve nesne yönelimli programlamanın önemli bir parçasını oluştururlar. Bu sınıflar, genellikle temel(base) sınıf olarak kullanılır ve belirli bir nesnenin genel yapısını tanımlamak için kullanılırlar.