Soyut Sınıf ve Kalıtım
Soyut sınıf ve Kalıtım, Java gibi birçok nesne yönelimli programlama dilinde bulunan iki önemli nesne yönelimli kavramdır. Soyut sınıf, düzenli (somut) bir sınıfın soyut bir versiyonu olarak kabul edilebilirken, Miras yeni sınıfların diğer sınıfları genişletmesine izin verir. Soyut sınıf, başlatılamayan ancak genişletilebilen bir sınıftır. Yani, Abstract sınıfları sadece programlama dilinin mirası desteklemesi durumunda anlamlıdır. Java'da, Abstract sınıfları Abstract anahtar sözcüğü kullanılarak bildirilirken, Extends anahtar sözcüğü bir (süper) sınıftan devralmak için kullanılır.
Soyut Sınıf Nedir?
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ıftır. 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).
Kalıtım nedir?
Kalıtım, yeni sınıfların diğer sınıfları genişletmesine olanak tanıyan nesne yönelimli bir kavramdır. Extends anahtar kelime, Java programlama dilinde kalıtım kavramını uygulamak için kullanılır. Devralma, temelde varolan bir sınıfın özelliklerini ve davranışını yeni tanımlanmış bir sınıf tarafından genişletmeye izin vererek kodun yeniden kullanımını sağlar. Yeni bir alt sınıf (veya türetilmiş sınıf) bir süper sınıfı (veya üst sınıfı) genişlettiğinde, bu alt sınıf süper sınıfın tüm niteliklerini ve yöntemlerini devralır. Alt sınıf isteğe bağlı olarak üst sınıftan devralınan davranışı geçersiz kılabilir (yöntemlere yeni veya genişletilmiş işlevsellik sağlar). Genellikle, bir alt sınıf birden çok süper sınıfı genişletemez (ör. Java'da). Bu nedenle, çoklu kalıtım için uzantıları kullanamazsınız. Birden fazla mirasa sahip olmak için arayüzler kullanmanız gerekir.
Soyut Sınıf ve Kalıtım arasındaki fark nedir?
Soyut sınıflar genellikle soyut bir kavramı veya kısmi ya da hiç uygulaması olmayan bir varlığı temsil eder. Kalıtım, yeni sınıfların diğer sınıfları genişletmesine izin verir. Abstract sınıfları somutlaştırılamadığından, Abstract sınıflarını kullanmak için kalıtım kavramını kullanmanız gerekir. Aksi takdirde, bir Abstract sınıfının faydası olmaz. Soyut sınıflar Soyut yöntemleri içerebilir ve sınıf genişletildiğinde, tüm yöntemler (Soyut ve somut) miras alınır. Devralınan sınıf, yöntemlerin herhangi birini veya tümünü uygulayabilir. Tüm Abstract yöntemleri uygulanmazsa, o sınıf da bir Abstract sınıfı olur. Bir sınıf birden fazla Soyut sınıftan miras alamaz (bu, kendi başına Soyut sınıfların kalitesi değil, kalıtımın bir kısıtlamasıdır).