C# Sealed (Mühürlü) Sınıflar
Yeni bir C#.Net makalemizde yeniden birlikteyiz. :)
Bugünkü konumuz Nesne Yönelimli Programlama (OOP) konusunun alt dalı olan sealed class (mühürlü sınıf) konusunu öğreneceğiz.
Sealed sınıflar başka bir sınıfa kalıtım vermeyen ancak new sözcüğüyle
instance (örnek kopya) alınarak kullanılabilen sınıflardır ve bir nevi son nokta sınıftır diyebiliriz.
Kalıtım vermemesi sebebiyle bir sınıfı sealed ile mühürlemeniz konusunda kesin karar vermelisiniz çünkü o sınıf kalıtım vermeyeceği için projenizde tıkanmalarla karşılaşabilirsiniz.
Sealed sınıflar başka kalıtım verebilen bir sınıftan kalıtım alabilir ancak başka bir sınıfa kalıtım veremezler.İçeriği ise kalıtım verememesinden dolayı abstract sınıf ya da interface gibi yalnızca metot gövdelerini barındıramazlar.
Mühürlenmiş bir sınıfı gelin basit bir örnek uygulamayla görelim..
Öncelikle Visual Studio IDE'mizi açalım ve yeni bir Windows Form uygulaması oluşturalım:
Insan adında normal bir sınıfımız olsun:
Aynı yöntemle Insan sınıfından kalıtım alan Ogrenci adında sealed eki almış mühürlü bir sınıf oluşturalım:
Sealed sınıfların kalıtım alma zorunlulukları yoktur ve burada örnek olması amacıyla Insan sınıfından kalıtım alıyoruz.
Sealed sınıfımızı kullanmak için Windows Form projemizdeki formun load olayında bir instance alalım:
Gördüğünüz gibi mühürlü sınıfımız tıpkı normal bir sınıfmış gibi kolaylıkla kullanılabiliyor,son olarak aslında kalıtım vermeyen sealed Ogrenci sınıfımızdan kalıtım almayı deniyoruz:
Oluşturduğumuz TembelOgrenci sınıfımız,kalıtım vermeyen sealed sınıfımızdan kalıtım almaya çalıştığında Visual Studio uyarısını veriyor, çünkü sealed sınıflar son nokta sınıflardır ve mühürlü sınıflara bağlı yeni sınıflar türetilemez.
Yazılım projelerinde sealed sınıflar genellikle kalıtım verme ihtiyacı duyulmayan veritabanı temel bilgileri gibi alanlarda kullanılıyor, zaten bir yazılım projesinde ortalara geldiğinizde hangi sınıfların kalıtım verme (inheritance) ihtiyacı olmadığını anlayacağınız gibi sonradan o sınıfa sealed mührü vermenizde sorun olmuyor.Yeter ki sealed işaretleyeceğiniz sınıf daha öncede başka bir sınıfa kalıtım vermemiş olsun.
Sealed sınıflarla ilgili olarak bilmemiz gerekenler şimdilik bu kadarıyla yeterli diye umuyorum,bir sonraki makalemizde görüşmek üzere hoşçakalın esen kalın :)
Bugünkü konumuz Nesne Yönelimli Programlama (OOP) konusunun alt dalı olan sealed class (mühürlü sınıf) konusunu öğreneceğiz.
Sealed sınıflar başka bir sınıfa kalıtım vermeyen ancak new sözcüğüyle
instance (örnek kopya) alınarak kullanılabilen sınıflardır ve bir nevi son nokta sınıftır diyebiliriz.
Kalıtım vermemesi sebebiyle bir sınıfı sealed ile mühürlemeniz konusunda kesin karar vermelisiniz çünkü o sınıf kalıtım vermeyeceği için projenizde tıkanmalarla karşılaşabilirsiniz.
Sealed sınıflar başka kalıtım verebilen bir sınıftan kalıtım alabilir ancak başka bir sınıfa kalıtım veremezler.İçeriği ise kalıtım verememesinden dolayı abstract sınıf ya da interface gibi yalnızca metot gövdelerini barındıramazlar.
Mühürlenmiş bir sınıfı gelin basit bir örnek uygulamayla görelim..
Öncelikle Visual Studio IDE'mizi açalım ve yeni bir Windows Form uygulaması oluşturalım:
Insan adında normal bir sınıfımız olsun:
Aynı yöntemle Insan sınıfından kalıtım alan Ogrenci adında sealed eki almış mühürlü bir sınıf oluşturalım:
Sealed sınıfların kalıtım alma zorunlulukları yoktur ve burada örnek olması amacıyla Insan sınıfından kalıtım alıyoruz.
Sealed sınıfımızı kullanmak için Windows Form projemizdeki formun load olayında bir instance alalım:
Gördüğünüz gibi mühürlü sınıfımız tıpkı normal bir sınıfmış gibi kolaylıkla kullanılabiliyor,son olarak aslında kalıtım vermeyen sealed Ogrenci sınıfımızdan kalıtım almayı deniyoruz:
Oluşturduğumuz TembelOgrenci sınıfımız,kalıtım vermeyen sealed sınıfımızdan kalıtım almaya çalıştığında Visual Studio uyarısını veriyor, çünkü sealed sınıflar son nokta sınıflardır ve mühürlü sınıflara bağlı yeni sınıflar türetilemez.
Yazılım projelerinde sealed sınıflar genellikle kalıtım verme ihtiyacı duyulmayan veritabanı temel bilgileri gibi alanlarda kullanılıyor, zaten bir yazılım projesinde ortalara geldiğinizde hangi sınıfların kalıtım verme (inheritance) ihtiyacı olmadığını anlayacağınız gibi sonradan o sınıfa sealed mührü vermenizde sorun olmuyor.Yeter ki sealed işaretleyeceğiniz sınıf daha öncede başka bir sınıfa kalıtım vermemiş olsun.
Sealed sınıflarla ilgili olarak bilmemiz gerekenler şimdilik bu kadarıyla yeterli diye umuyorum,bir sonraki makalemizde görüşmek üzere hoşçakalın esen kalın :)
Yazdığınız yazı dizisini çok sevdim. Umarım en kısa zamanda devam eder :-D.