Java’daki soyut bir sınıf, somutlaştırılamayan ancak alt sınıflara ayrılabilen bir sınıftır. Diğer sınıflar için bir plan olarak kullanılır ve tipik olarak alt sınıfları arasında paylaşılacak ortak yöntemleri ve alanları tanımlamak için kullanılır.
Bir soyut sınıf, class anahtar sözcüğünden önce gelen abstract anahtar sözcüğü kullanılarak tanımlanır. Soyut bir sınıf hem soyut hem de soyut olmayan yöntemlere sahip olabilir. Soyut yöntemler, gövdesi olmayan ve alt sınıflar tarafından uygulanması gereken yöntemlerdir. Bu yöntemler, abstract anahtar sözcüğü kullanılarak tanımlanır ve bir yöntem gövdesine sahip değildir.
Örneğin, soyut bir Shape sınıfı, Circle, Rectangle ve Triangle gibi alt sınıfları tarafından uygulanması gereken soyut bir draw() yöntemine sahip olabilir.
Bir soyut sınıfın alt sınıfını oluşturmak için, alt sınıfın, üst sınıfta tanımlanan tüm soyut yöntemleri uygulaması gerekir. Bir alt sınıf, üst sınıfta tanımlanan soyut yöntemlerin tümünü uygulamıyorsa, aynı zamanda bir soyut sınıf olarak tanımlanmalıdır.
Soyut bir sınıf, soyut olmayan yöntemlere de sahip olabilir; bu, sınıfın bir gövdesi olduğu ve gerekirse yöntemlerin alt sınıflar tarafından geçersiz kılınabileceği anlamına gelir. Bu yöntemler, geçersiz kılınmadan alt sınıflar tarafından kullanılabilir.
Ek olarak, soyut bir sınıf, alt sınıfın bir nesnesi oluşturulduğunda çağrılan yapıcılara da sahip olabilir. Soyut sınıfın yapıcıları, super() anahtar kelimesi kullanılarak çağrılır.
Soyut bir sınıf, birden çok sınıf tarafından kullanılacak ortak bir yöntem kümeniz olduğunda kullanışlıdır, ancak bu yöntemlerin uygulanması her sınıf için farklı olacaktır. Ayrıca, tutarlı bir API oluşturmak için yararlı olabilecek bir ilgili sınıf grubu için ortak bir arabirim tanımlamanıza olanak tanır.
Özetle, Java’daki soyut bir sınıf, somutlaştırılamayan ancak alt sınıflara ayrılabilen bir sınıftır. Diğer sınıflar için bir plan olarak kullanılır ve tipik olarak alt sınıfları arasında paylaşılacak ortak yöntemleri ve alanları tanımlamak için kullanılır. Ayrıca, ilgili sınıflar grubu için ortak bir arabirim oluşturulmasına izin verir ve alt sınıfları, içinde tanımlanan soyut yöntemleri uygulamaya zorlamak için güçlü bir özelliğe sahiptir.
İbrahim Ebrar AKÇAKOYUN
