C Sharp’da Abstract Yapısı
Herkese merhaba,
Bu yazıda C Sharp’da Abstract Yapısı ile ilgili bilgi vermeye çalışacağım.
C Sharp’da Abstract Nedir?
Abstract’ler, ortak özellikli Class’lara Base(taban) Class olma görevini üstlenen bir yapıdır. Class’larınız pek çok yönden ortak özellikleri içerisinde barındırıyorsa Abstract Class kullanmanız kodunuzun daha sağlıklı olmasını sağlar. Bir sınıfın Abstract olduğunu bildirmek için oluşturduğumuz sınıfın önüne Abstract anahtar kelimesini ekleriz. Bu şekilde bir Abstract Class oluşturduğumuzu derleyicimize bildirmiş olur.
- C Sharp’da Abstract Class’lar, diğer sınıflara base Class olmak için yazılırlar ve bu nedenle Abstract Class’lardan nesne türetilemez.
- C Sharp’da Abstract Methodlar, sadece Abstract Class’ların içerisinde tanımlanırlar.
- C Sharp’da Abstract Method, sadece Abstract Class’ların içerisinde tanımlanabilen, tanımlanırken gövde bulundurmayan, daha sonra içerisinde bulunduğu Abstract Class kalıtılırken override edilen Method‘lardır.
- C Sharp’da Abstract Class içerisine, Abstract Method yazılırken gövdesi yazılmaz ve Abstract Class’ımızı kalıtacağımız sınıfta Abstract Method’u override ederiz.
- C Sharp’da Abstract Method’lar, Private olarak tanımlanamaz.
- C Sharp’da Abstract Class’lar tamamen kalıtım amaçlı geliştirildiğinden dolayı Abstract sınıflardan nesne oluşturulamaz kısaca new ile oluşturulamazlar.
- C Sharp’da Abstract Class’lar içerisinde değişken ve Method bulundurabilir.
- C Sharp’da Abstract Class’lardan türetilen sınıfların Abstract Metodları implement etmesi zorunludur. Diğer metodları override etmeden de kullanabilirler.
- C Sharp’da Abstract Class’lar Constructors (yapıcı metodlar) ve Destructors (yıkıcı metodlar) bulundurabilirler.
- C Sharp’da Abstract Class’lar Static tanımlanamazlar. (Tanımlanmaya çalışılırsa compiler “an abstract class cannot be sealed or static” hatası veriler)
- C Sharp’da Abstract Class’lar yalnızca bir Abstract Class Inheritance yoluyla implement edebilir. Çoklu kalıtım (multiple Inheritance) desteklenmez.
- C Sharp’da Abstract Class’lar Abstract olmayan metodları da bulundurabilirler.
- C Sharp’da Abstract Class’lar, ortak özellikleri olan nesneleri bir çatı altında toplamak için kullanılırlar.
- C Sharp’da Abstract Class’lar “sealed” anahtar sözcüğü ile ifade edilemezler.
- C Sharp’da Abstract Class’lar “private” olarak tanımlanamazlar ama “public” ve “protected” olarak tanımlanabilirler.
- C Sharp’da Abstract Class’lar “Static” metotlar Abstract olarak tanımlanamazlar.
- C Sharp’da Abstract Class’lar override edilmek zorundadırlar, aksi takdirde derleyici hatası alınır.
Abstract Yapısı ile hazırlamış olduğum örneği görmektesiniz.
using System;
namespace AbstractClassExample
{
class Program
{
public abstract class Hayvan
{
public abstract void sesVer();
public void uyu()
{
Console.WriteLine("Zzz....");
}
}
public class Kedi : Hayvan
{
public override void sesVer()
{
Console.WriteLine("Miyavvv");
}
}
public class Kopek : Hayvan
{
public override void sesVer()
{
Console.WriteLine("Hav Hav");
}
}
static void Main(string[] args)
{
Kopek kopek = new Kopek();
kopek.sesVer();
Kedi kedi = new Kedi();
kedi.sesVer();
}
}
}
C Sharp’da Abstract Yapısı ile ilgili anlatacaklarım bu kadar.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.