Soyut Sınıf ve Beton Sınıf
Java ve C # gibi popüler modern nesne yönelimli programlama dillerinin çoğu sınıf tabanlıdır. Kapsülleme, kalıtım ve polimorfizm gibi nesne yönelimli kavramları sınıfları kullanarak elde ederler. Sınıflar, gerçek dünyadaki nesnelerin soyut bir temsilidir. Sınıflar, yöntem işlevlerinin uygulama düzeyine bağlı olarak somut veya soyut olabilir. Somut bir sınıf tüm yöntemlerini tamamen uygular. Soyut bir sınıf, kısmen uygulanan yöntemler içerebileceği düzenli (somut) bir sınıfın sınırlı bir versiyonu olarak düşünülebilir. Tipik olarak, somut sınıflara (sadece) sınıflar denir.
Beton Sınıfı Nedir?
Varsayılan sınıf somut bir sınıftır. Class anahtar sözcüğü sınıfları tanımlamak için kullanılır (örneğin Java'da). Ve genellikle basitçe sınıflar olarak adlandırılırlar (sıfat beton olmadan). Somut sınıflar gerçek dünyadaki nesnelerin kavramsal temsilini betimler. Sınıflar öznitelik adı verilen özelliklere sahiptir. Öznitelikler global ve örnek değişkenler olarak uygulanır. Sınıflardaki yöntemler, bu sınıfların davranışlarını temsil eder veya tanımlar. Sınıfların yöntemleri ve nitelikleri sınıfın üyeleri olarak adlandırılır. Tipik olarak, kapsülleme, öznitelikleri özel hale getirerek ve bu özniteliklere erişmek için kullanılabilecek genel yöntemler oluşturularak elde edilir. Nesne bir sınıf örneğidir. Kalıtım, kullanıcının sınıfları (alt sınıflar olarak adlandırılır) diğer sınıflardan (süper sınıflar olarak adlandırılır) genişletmesine olanak tanır. Polimorfizm, programcının süper sınıfının bir nesnesi yerine bir sınıfın bir nesnesini değiştirmesine izin verir. Tipik olarak, problem tanımında bulunan isimler doğrudan programda sınıf haline gelir. Ve benzer şekilde, fiiller yöntem haline gelir. Genel, özel ve korumalı sınıflar için kullanılan tipik erişim değiştiricilerdir.
Soyut Sınıf Nedir?
Abstract sınıfları Abstract anahtar sözcüğü kullanılarak bildirilir (ör. Java'da). Genellikle, Soyut Temel Sınıflar (ABC) olarak da bilinen Abstract sınıfları somutlaştırılamaz (bu sınıfın bir örneği oluşturulamaz). Bu nedenle, Abstract sınıfları yalnızca programlama dilinin mirası destekliyorsa (bir sınıfı genişleterek alt sınıflar oluşturma yeteneği) sahip olmak anlamlıdır. Soyut sınıflar genellikle kısmi veya hiç uygulaması olmayan soyut bir kavramı veya varlığı temsil eder. Bu nedenle, Abstract sınıfları alt sınıfların türetildiği üst sınıflar olarak işlev görür, böylece alt sınıf üst sınıfın eksik özelliklerini paylaşır ve bunları tamamlamak için işlevsellik eklenebilir.
Soyut sınıflar Soyut yöntemler içerebilir. Bir soyut sınıfı genişleten alt sınıflar bu (kalıtsal) Soyut yöntemleri uygulayabilir. Çocuk sınıfı tüm bu Soyut yöntemleri uygularsa, somut bir sınıf haline gelir. Ama eğer olmazsa, çocuk sınıfı da bir Soyut sınıf haline gelir. Tüm bunların anlamı, programcı bir sınıfı bir Özet olarak aday gösterdiğinde, sınıfın eksik olacağını ve miras kalan alt sınıflar tarafından tamamlanması gereken unsurlara sahip olacağını söylüyor. Bu, iki programcı arasında yazılım geliştirmedeki görevleri basitleştiren bir sözleşme oluşturmanın güzel bir yoludur. Devralmak için kod yazan programcı, yöntem tanımlarını tam olarak izlemelidir (ancak elbette kendi uygulamasına sahip olabilir).
Abstract Class ve Concrete Class arasındaki fark nedir?
Soyut sınıflar genellikle kısmi ya da hiç uygulanmaz. Öte yandan, somut sınıflar her zaman davranışlarını tam olarak uygularlar. Somut sınıflardan farklı olarak, soyut sınıflar somutlaştırılamaz. Bu nedenle soyut sınıfların yararlı olması için genişletilmesi gerekir. Soyut sınıflar soyut yöntemler içerebilir, ancak somut sınıflar içeremez. Soyut bir sınıf genişletildiğinde, tüm yöntemler (hem soyut hem de somut) miras alınır. Devralınan sınıf, yöntemlerin herhangi birini veya tümünü uygulayabilir. Tüm soyut yöntemler uygulanmazsa, o sınıf da soyut bir sınıf haline gelir.