5.00 / 1 oy

C# Sealed Anahtar Sözcüğü Nedir? Sealed Kullanımı ve Örnekleri?

C# programlama dilinde kalıtım (inheritence) ve çok biçimlilik (polymorphism) konularında temel konulara değindik ve istediğimiz virtual metodları override ettik. Ancak her metodun override edilmemesi, her sınıftan da kalıtım ile alt sınıflar üretilmemesi gereken yapılar olabilir. Sealed anahtar sözcüğü de bu amaçla sınıflar ve metodlar için modifer olarak kullanılan bir anahtar kelimedir.

- Sealed anahtar sözcüğü bir sınıf için kullanıldığında o sınıftan kalıtım yapılamaz.

- Sealed anahtar sözcüğü override edilmiş bir metod için kullanıldığında ise o metod bir alt sınıfta tekrar override edilemez.

Örnek 1: Sınıflar için sealed anahtar sözcüğü kullanımı

sealed class Araba
{
    ...
}

class Limuzin :Araba
{
    ...
}

Hata çıktısı: ...Cannot derive from sealed type...

 

Örnek 2: Metodlar için sealed anahtar sözcüğü kullanımı

class Araba
{
    public string Marka { get; set; }
    public string Model { get; set; }

    public Araba(string marka, string model)
    {
        this.Marka = marka;
        this.Model = model;
    }

    public virtual void Calistir()
    {
        System.Console.WriteLine("Araba çalıştı");
    }
}


class SporAraba :Araba
{
    public bool UstuAcilir { get; set; }
    public SporAraba(string marka, string model, bool ustuacilir) :base(marka,model)
    {
        this.UstuAcilir = ustuacilir;
    }

    public sealed override void Calistir()
    {
        System.Console.WriteLine("Spor araba çalıştı");
    }
}

class CoupeAraba :SporAraba
{
    
    public CoupeAraba(string marka, string model, bool ustuacilir) :base(marka,model)
    {
        this.UstuAcilir = ustuacilir;
    }

    public override void Calistir() //HATA
    {
        System.Console.WriteLine("Coupe araba çalıştı");
    }
}

Hata çıktısı: Cannot override inherited member ... because it is sealed

 

 

Önceki bazı diğer benzer yazım için;

bkz: C# Polymorphism (Çok Biçimlilik) Nedir?

bkz: C# Base Nedir? Kullanımı ve Örnekleri

bkz: C# IEnumerable Nedir?

bkz: C# ve Generic ile Non-Generic Koleksiyonlar Nelerdir?

bkz: C# Programlama Dilinde Koleksiyon Nedir?

bkz: Interface Nedir?

mbologlu

16.05.2021 00:18

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
C# Sealed Anahtar Sözcüğü Nedir? Sealed Kullanımı ve Örnekleri?

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.