Soyut Sınıf ve Java Arayüzü
Soyut sınıf ve Java'daki arayüz arasındaki farkları anlamak için, öncelikle bunların her birini bağımsız olarak anlamak önemlidir. Java'daki soyut sınıf, bir dizi ortak özelliğe sahip alt sınıfların ilanında kullanılır. Soyut sınıfın ortak kullanımı, aslında soyut sınıfı genişletmesine izin veren diğer sınıfların süper sınıfıdır. Soyut bir sınıfın beyanında soyut bir anahtar kelime kullanılır. Diğer herhangi bir sınıfın yaptığı gibi, soyut sınıf da sınıfın gerçekleştirebileceği yöntemleri ve özellikleri tanımlayan alanlara sahiptir. Soyut bir sınıfın beyanıyla, sınıf başlatılamaz.
Bir Java arayüzü bir protokole eşitlenebilir. İlişkisiz nesnelerin etkileşimini kolaylaştırmaya izin veren önceden ayarlanmış ve üzerinde anlaşılmış bir davranışı temsil eder. Kullanıcıya bağlı olarak, arabirim uygulanan farklı eylemlerin anahtarını tutar. Dolayısıyla arayüz üretici ile tüketici arasında bir bağlantı görevi görür. Dolayısıyla, Java'daki arabirimler, sabit bildirimleri olabilen boş gövdeler içeren bir grup yöntemdir. Bir sınıfı Java arayüzüne maruz bırakmak, sınıftan beklenen davranışın arayüzün tüm yöntemlerinin uygulanması anlamına gelir.
farklılıklar
Öncelikle, soyut bir sınıf, arabirimlerde kullanılan statik ve son alanların aksine statik veya son olmayan alanlara izin verir. Arabirimler içinde hiçbir uygulama kodu kullanılamaz ve soyut sınıfta kullanılan uygulama kodu olabilir. Soyut sınıfta sunulan Uygulama kodları, uygulanan yöntemlerin birkaçına veya tümüne sahip olabilir. Varsayılan olarak, arabirimin tüm yöntemleri “soyut” dur.
Görünürlük ayrıca, genel, korumalı, özel veya hiçbiri gibi değişebilen soyut bir sınıfın yöntemleri veya üyeleri için de mümkündür. Arayüzün görünürlüğü ise yalnızca “herkese açık” bir görünürlük moduna ayarlanabilir.
Soyut bir sınıf nesne sınıfını otomatik olarak devralır. Bu aslında klon () ve eşittir () gibi yöntemlerin dahil edildiği anlamına gelir. Bir arabirimde, nesne sınıfının devralınması mümkün değildir. Bunu takiben, soyut sınıf bir yapıcıya sahip olma yeteneğine sahiptir, ancak bir arayüzde bir.
Java'daki arabirim, birden çok kalıtımın uygulanmasıyla da çok önemli bir işleve sahiptir, çünkü bir sınıfın yalnızca bir süper sınıfı olabilir. Her ne kadar sadece bir süper sınıf mevcut olsa da, hangi sayıda arayüzde uygulanabilir. Soyut bir sınıfta birden fazla mirasa sahip olmak mümkün değildir.
Performansta, arayüzler, esas olarak bir sınıfta karşılık gelen yöntemi bulmanın ekstra yönü nedeniyle soyut sınıfa kıyasla uygulamada daha yavaş olma eğilimindedir. Bununla birlikte, sürekli olarak güncellenen modern Java sanal makineleri nedeniyle fark yavaşladı.
Bir arabirime yöntem eklemek, belirli arabirimi uygulayan tüm uygulama sınıflarını izlemenizi gerektirir. Alternatif olarak, arabirimi ekstra yöntemlere izin verecek şekilde genişletebilirsiniz. Soyut bir sınıfla uğraşıyorsanız, gereken tek şey yöntemin varsayılan uygulamasını eklemektir ve kod çalışmaya devam eder. Soyut sınıflar ve arayüzler arasında farklılıklar olduğu sürece, bunların rakip olmadığını belirtmek önemlidir, ancak burada belirtilen farklılıklar birbirini tamamlamaya hizmet eder.
özet
Soyut sınıf alanları statik ve son tabloları olan arayüzün aksine statik veya son değildir.
Soyut sınıfta kullanılabilirken arayüzlerde hiçbir uygulama kodu kullanılamaz.
Arayüz görünürlüğü yalnızca herkese açık olabilirken soyut sınıf görünürlüğü değişebilir.
Soyut bir sınıf nesne sınıfını otomatik olarak devralır, ancak arayüzde mümkün değildir.
Abstract sınıfı uygulama arayüzünden daha hızlıdır.