Soyut Sınıf ve Arayüz
Abstract sınıf ve Arayüz, Java gibi birçok nesne yönelimli programlama dilinde bulunan iki nesne yönelimli yapıdır. Soyut sınıf, normal (somut) bir sınıfın soyut bir versiyonu olarak kabul edilebilirken, bir arayüz, bir sözleşmeyi uygulamanın bir aracı olarak düşünülebilir. Soyut sınıf, başlatılamayan ancak genişletilebilen bir sınıftır. Arayüz, diğer sınıflar tarafından uygulanması gereken bir türdür. Java'da Abstract sınıfları, Abstract anahtar sözcüğü kullanılarak bildirilirken interface anahtar sözcüğü bir arabirimi tanımlamak için kullanılır.
Soyut Sınıf nedir?
Tipik olarak, Soyut Temel Sınıflar (ABC) olarak da bilinen Soyut sınıflar somutlaştırılamaz (bu sınıfın bir örneği oluşturulamaz). Bu nedenle, Soyut sınıflar yalnızca programlama dili kalıtımı destekliyorsa anlamlıdır (bir sınıfı genişleterek alt sınıflar oluşturma yeteneği). Soyut sınıflar genellikle kısmi veya hiç uygulaması olmayan soyut bir kavramı veya varlığı temsil eder. Bu nedenle, Soyut sınıflar, alt sınıfların türetildiği üst sınıflar gibi davranır, böylece alt sınıf, üst sınıfın eksik özelliklerini paylaşır ve bunları tamamlamak için işlevsellik eklenebilir.
Abstract sınıfları, Soyut yöntemler içerebilir. Soyut bir sınıfı genişleten alt sınıflar, bu (kalıtsal) Soyut yöntemleri uygulayabilir. Alt sınıf, bu tür tüm Soyut yöntemleri uygularsa, somut bir sınıftır. Ancak olmazsa, alt sınıf da bir Soyut sınıf olur. Tüm bunların anlamı, programcı bir sınıfı Soyut olarak aday gösterdiğinde, sınıfın eksik olacağını ve devralan alt sınıflar tarafından tamamlanması gereken öğelere sahip olacağını söylüyor olmasıdır. 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. Miras almak için kod yazan programcı, yöntem tanımlarını tam olarak takip etmelidir (ancak elbette kendi uygulaması olabilir).
Arayüz nedir?
Bir arabirim, bu arabirimi uygulayan sınıflar tarafından uygulanması gereken bir sözleşmeyi belirtmek için kullanılan soyut bir türdür. interface anahtar sözcüğü bir arabirimi tanımlamak için kullanılır ve Implements anahtar sözcüğü, bir sınıf tarafından bir arabirim uygulamak için kullanılır (Java programlama dilinde). Genellikle, bir arabirim yalnızca yöntem imzalarını ve sabit bildirimleri içerir. Belirli bir arabirimi uygulayan herhangi bir arabirim, arabirimde tanımlanan tüm yöntemleri uygulamalı veya soyut bir sınıf olarak bildirilmelidir. Java'da, bir nesne referansının tipi, bir arayüz tipi olarak tanımlanabilir. Ancak bu nesne ya boş olmalı ya da o belirli arabirimi uygulayan bir sınıfın nesnesini tutmalıdır. Java'da Implements anahtar sözcüğünü kullanarak, tek bir sınıfa birden çok arabirim uygulayabilirsiniz.
Soyut Sınıf ve Arayüz arasındaki fark nedir?
Soyut sınıflar genellikle soyut bir kavramı veya kısmi uygulaması olan veya hiç uygulaması olmayan bir varlığı temsil eder. Öte yandan, bir arabirim, sınıflar tarafından uygulanması gereken bir sözleşmeyi belirtmek için kullanılan soyut bir türdür. Soyut sınıflar miras alınmalı (veya genişletilmeli), arayüzler ise uygulanmalıdır. Soyut sınıflar soyut yöntemler içerebilirken, bir arabirim yalnızca soyut yöntemler içermelidir. Soyut sınıflar herhangi bir değişken içerebilir, ancak Arayüzler yalnızca sabitleri tanımlayabilir. Bir sınıf birden fazla soyut sınıftan miras alamaz, ancak birden çok arabirim uygulayabilir. Bir Arayüz başka bir arayüzü uygulayamaz. Ancak bir arayüz bir sınıfı genişletebilir.