Java'da Soyut Sınıf ve Arayüz arasındaki fark

Soyut sınıf ve arayüz hem soyutlama için kullanılır, ancak birbirinden çok farklıdırlar. Her ikisi de Java'nın çekirdek parçasıdır ancak kendi uygulama kullanımları vardır. Her iki terim birbiriyle eşanlamlı olsa da, birbirlerinin yerine kullanılamazlar.

İkisi arasında önemli farklar var. Bir arabirim yöntemi varsayılan olarak soyut olsa da, bir özet hem soyut hem de soyut olmayan yöntemleri içerebilir. Java 8'den beri, arayüzlerin yöntem uygulamaları da vardır ve Java'da hem statik hem de varsayılan yöntemlere sahip olabilirler. İkisi arasındaki farkı detaylı olarak inceleyelim.

Java'da Soyut Sınıf nedir?

Java'daki bir soyut sınıf, soyut olarak bildirilen bir sınıftır - soyut yöntemler içerebilir veya içermeyebilir. Varsayılan yöntem uygulamasını içerebilmesi dışında bir Java arabirimine oldukça benzer. Nesne yönelimli programlamada olduğu gibi, Java'daki soyutlama da soyut sınıflar ve arayüzler kullanılarak elde edilir. Java'da soyutlama, etkinliği artırmak ve karmaşıklığı azaltmak için alakasız ayrıntıları kullanıcıdan yalnızca temel ayrıntılara odaklanmak üzere gizlemek anlamına gelir. “Abstract” anahtar kelimesi, sınıf bildirimindeki class anahtar kelimesinden hemen önce soyut bir sınıf oluşturmak için kullanılır.

Soyut bir sınıf soyutlama yöntemleri (bedensiz yöntemler) içerebilir veya içermeyebilir, ancak bir sınıfın en az bir soyutlama yöntemi varsa, soyut olarak bildirilmesi gerekir. Bununla birlikte, soyut olmayan yöntemler yalnızca soyut bir sınıfta da kullanılabilir, ancak yalnızca varsayılan davranışı uygulamak için kullanılabilir. Soyut bir sınıftaki yöntemler, görünürlük seviyesine bağlı olarak özel, genel, statik ve korumalı gibi erişim değiştiricilere sahip olabilir. Soyut bir sınıf somutlaştırılamaz ve somut bir yöntemi olabileceği için yüzde 100 soyutlama sağlamaz.

Arayüz Nedir?

Bir arayüz bir sınıfa benziyor, öyle değil. Java birden fazla devralmayı desteklemediğinden, bazen arabirim sınıf hiyerarşisine temel sağlamak için idealdir. Bir arayüz, Java'da soyutlama elde etmek için de kullanılan bir sınıfın ayrıntılı bir planıdır. Soyut yöntemler ve statik sabitler içerir. Basit bir ifadeyle, arabirim, sınıfın uygulamak zorunda olduğu bir davranışı belirtmek için kullanılan soyut yöntemlerin bir koleksiyonudur. Soyut sınıftan farklı olarak, bir arayüz Java'da tam soyutlama sağlar. Bir sınıf gibi hem yöntemlere hem de değişkenlere sahip olabilir, ancak arabirimde bildirilen yöntemler varsayılan olarak soyuttur.

Java'da Soyut Sınıf ve Arayüz arasındaki fark

  1. Java'da Soyut Sınıf ve Arabirimin “Çoklu Kalıtım” - Hem soyut sınıfın hem de arayüzün temel olarak soyutlama için kullanılmasına rağmen, birbirlerinden oldukça farklıdırlar. Soyut bir sınıf bir sınıf iken, bir arayüz bir arayüzdür. Bir arabirim yalnızca başka bir Java arabirimini genişletebilirken, soyut bir sınıf Java'da birden fazla miras uygulayabilir. Java birden fazla devralmayı desteklemez, ancak Java'da birden çok devralma uygulanabilir.
  2. Java'da Soyut Sınıf ve Arabirimin “Yöntem Türü” - İkisi arasındaki ikinci büyük fark, bir arayüzün sadece soyut yöntemlere sahip olabilmesine rağmen, soyut bir sınıfın hem soyut hem de soyut olmayan yöntemlere sahip olabilmesidir. Ancak, Java 8'den beri, bir arabirim de varsayılan ve statik yöntemlere sahip olabilir.
  3. Java'da Soyut Sınıf ve Arabirimin “Erişim Değiştiricileri” - Soyut bir sınıfın genel, özel ve korumalı erişim değiştiricileri olabilir, ancak bir arabirimin yöntemleri dolaylı olarak genel ve soyuttur. Arayüz yöntemleriyle başka bir erişim değiştiricisini kullanamazsınız..
  4. Java'da Soyut Sınıf ve Arayüz "Uygulaması" - Soyut bir sınıf bir arabirimin uygulanmasını sağlayabilir. Öte yandan bir arayüz soyut bir sınıfın uygulanmasını sağlayamaz.
  5. Java'da Soyut Sınıf ve Arayüz "Anahtar Kelimesi"- “Abstract” anahtar kelimesi soyut sınıf yöntemini soyut olarak bildirmek için kullanılırken, arayüzler tamamen farklı bir hikaye; yalnızca genel, statik nihai sabitler ve yöntem bildirimleri olabilir.
  6. Java'da Soyut Sınıf ve Arayüz Kullanımı - Bir arabirim tür bildirimi için ideal olsa da, soyut bir sınıf kod yeniden kullanılabilirliği ve evrim perspektifi için en uygunudur. Arayüz bir sınıfa benziyor, ancak bir sınıf değil.
  7. Java'da Soyut Sınıf ve Arayüzün “Güvenilirliği”- Soyut bir sınıf ve bir arabirim arasındaki bir diğer önemli fark, birincisinin ikincisinden biraz daha hızlı olmasıdır, çünkü Java'da geçersiz kılınan herhangi bir yöntem çağrılmadan önce bir arama genellikle bir arabirimde yer alır.
  8. Java'da Soyut Sınıf ve Arayüz "Nihai Değişkenleri" - Bir arabirimde bildirilen değişkenler varsayılan olarak son şeklindedir; soyut bir sınıf ise nihai olmayan değişkenler içerebilir veya içermeyebilir.

Soyut Sınıf ve Java Arayüzü: Karşılaştırma Tablosu

Soyut Sınıf Arayüz
Abstract anahtar sözcüğü soyut bir sınıf oluşturmak için kullanılır ve yöntemlerle kullanılabilir. Arayüz anahtar sözcüğü bir arayüz oluşturmak için kullanılır, ancak yöntemlerle kullanılamaz.
Bir sınıf yalnızca bir soyut sınıfı genişletebilir. Bir sınıf birden fazla arabirim uygulayabilir.
Soyut bir sınıf hem soyut hem de soyut olmayan yöntemlere sahip olabilir. Bir arayüzün yalnızca soyut yöntemleri olabilir.
Değişkenler varsayılan olarak son değildir. Nihai olmayan değişkenler içerebilir. Değişkenler varsayılan olarak bir arabirimde kesindir.
Soyut bir sınıf bir arabirimin uygulanmasını sağlayabilir. Bir arabirim soyut bir sınıfın uygulanmasını sağlayamaz.
Uygulama yöntemlerine sahip olabilir. Mutlak soyutlama sağlar ve yöntem uygulamaları olamaz.
Genel, özel, statik ve korumalı erişim değiştiricilere sahip olabilir. Yöntemler, Java arabiriminde dolaylı olarak genel ve soyuttur.
Birden fazla mirası desteklemiyor. Birden fazla mirası destekler.
Kodun yeniden kullanımı ve evrim perspektifi için idealdir. Tip beyanı için idealdir.

Java'da Soyut Sınıf ve Arayüz ile ilgili özet noktalar

Soyut sınıf ve arabirim soyutlama için kullanılır; ancak, farklılıklardan adil payları vardır. İkisi arasındaki temel fark soyutlama yöntemleri tarafından yönlendirilir. Birincisi soyut yöntemlere sahip olabilir veya olmayabilir de, ikincisi dolaylı olarak soyuttur. Soyut bir sınıf hem soyut hem de soyut olmayan yöntemlere sahip olabilir. Öte yandan, bir arayüz sadece soyut yöntemlere sahip olabilir, bu yüzden uygulama yapamazlar, yani bir arayüzün soyut olmayan yöntemlere sahip olamayacağı anlamına gelir. Bir nesnenin yaratılmasını yasaklayan soyut bir sınıf somutlaştırılamaz. Öte yandan, bir arayüz bir sınıfa benzeyebilir, ancak.