Soyut Sınıf ve Arayüz Arasındaki Fark Java

Soyut Sınıf ve Arayüz Arasındaki Temel Farklar Java

  • Arayüzde, bir sınıf birden fazla arayüzü uygulayabilirken, sınıf yalnızca bir Soyut Sınıfı miras alabilir.
  • Arayüzde erişim değiştiricileri yoktur. Arayüz içinde tanımlanan her şeyin genel bir değiştiriciye sahip olduğu varsayılırken Soyut Sınıfın bir erişim değiştiricisi olabilir.
  • Arayüz veri alanları içeremez, oysa soyut sınıf veri alanlarına sahip olabilir.
  • Arayüzler bir sınıfın çevresel yeteneklerini tanımlamaya yardımcı olurken, soyut bir sınıf bir sınıfın kimliğini tanımlar.

Arayüz ve Soyut Sınıf Java

Soyut Sınıf Nedir?

Bildiriminde abstract anahtar sözcüğü bulunan bir sınıfa abstract sınıf denir. Abstract sınıflar sıfır veya daha fazla abstract metoda sahip olmalıdır. Yani, gövdesi olmayan metodlar. Birden fazla concrete metoda sahip olabilir. Abstract sınıflar, concrete sınıflar için planlar oluşturmanıza olanak tanır. Ancak miras alan sınıf abstract metodu uygulamalıdır. Abstract sınıflar örneklendirilemez.

Arayüzleri Kullanmanın Önemli Nedenleri

  • Arayüzler bunu başarmak için kullanılır soyutlama.
  • Çalışma zamanında dinamik yöntem çözümlemesini desteklemek üzere tasarlanmıştır
  • Gevşek bağlantı elde etmenize yardımcı olur.
  • Bir yöntemin tanımını miras hiyerarşisinden ayırmanıza olanak tanır

Soyut Sınıfı Kullanmanın Önemli Nedenleri

  • Soyut sınıflar, alt sınıflar için varsayılan işlevsellik sunar.
  • Gelecekteki spesifik sınıflar için bir şablon sağlar
  • Alt sınıfları için ortak bir arayüz tanımlamanıza yardımcı olur
  • Soyut sınıf kodun yeniden kullanılabilirliğine izin verir.

Arayüz Nedir?

Arayüz, bir sınıfı uygulamak için kullanılabilecek bir taslaktır. Arayüz herhangi bir somut yöntem (kod içeren yöntemler) içermez. Bir arayüzün tüm yöntemleri soyut yöntemlerdir. Bir arayüz örneklenemez. Ancak, arayüzleri uygulayan sınıflar örneklenebilir. Arayüzler asla örnek değişkenler içermez ancak, genel statik son değişkenler (yani, sabit sınıf değişkenleri) içerebilirler.

Arayüz ve Soyut Sınıf Arasındaki Fark Java

Soyut bir sınıf, alt sınıfların uygulayabileceği veya geçersiz kılabileceği işlevsellik oluşturmanıza izin verirken, bir arayüz yalnızca işlevselliği belirtmenize izin verir, ancak onu uygulamanıza izin vermez. Bir sınıf yalnızca bir soyut sınıfı genişletebilirken, bir sınıf birden fazla arayüzü uygulayabilir.

parametreler arayüzey Soyut sınıf
hız Yavaş Hızlı
Çoklu Miraslar Birkaç Arayüz Uygulayın Yalnızca bir soyut sınıf
Structure Soyut yöntemler Soyut ve somut yöntemler
Ne zaman kullanılır? Gelecekteki geliştirme Bağımsızlıktan kaçınmak için
Devralma / Uygulama Bir Sınıf birden fazla arayüzü uygulayabilir Sınıf yalnızca bir Soyut Sınıfı miras alabilir
Varsayılan Uygulama Arayüze yeni şeyler eklerken tüm uygulayıcıları bulmak ve yeni tanımlanan şeyleri uygulamak bir kabustur. Soyut Sınıf durumunda, varsayılan uygulamanın avantajlarından yararlanabilirsiniz.
Erişim Değiştiricileri Arayüzde erişim değiştiricileri yoktur. Arayüz içinde tanımlanan her şeyin genel değiştirici olduğu varsayılır. Soyut Sınıfın bir erişim değiştiricisi olabilir.
Ne zaman kullanılır? Çeşitli uygulamaların yalnızca yöntem imzasını paylaştığı durumlarda arayüzü kullanmak daha iyidir. Değer türlerinin polimorfik hiyerarşisi. Aynı türden çeşitli uygulamaların ortak bir davranışı paylaştığı durumlarda kullanılmalıdır.
Veri alanları arayüz veri alanları içeremez. sınıfın veri alanları olabilir.
Çoklu Kalıtım Varsayılanı Bir sınıf çok sayıda arayüz uygulayabilir. Bir sınıf yalnızca bir soyut sınıfı miras alır.
Uygulama Bir arayüz soyut olduğundan herhangi bir kod sağlayamaz. Soyut bir sınıf, geçersiz kılınması gereken eksiksiz, varsayılan kodu verebilir.
Erişim değiştiricilerin kullanımı Yöntem, özellikler vb. için erişim değiştiricileri kullanamazsınız. Erişim değiştiricileri içeren soyut bir sınıf kullanabilirsiniz.
kullanım Arayüzler bir sınıfın çevresel yeteneklerini tanımlamaya yardımcı olur. Soyut bir sınıf, bir sınıfın kimliğini tanımlar.
Tanımlanmış alanlar Hiçbir alan tanımlanamaz Soyut bir sınıf hem alanları hem de sabitleri tanımlamanıza olanak tanır
miras Bir arayüz birden fazla arayüzü miras alabilir ancak bir sınıfı miras alamaz. Soyut bir sınıf, bir sınıfı ve birden fazla arayüzü miras alabilir.
Yapıcı veya yıkıcılar Bir arayüz yapıcıları veya yıkıcıları bildiremez. Soyut bir sınıf yapıcıları ve yıkıcıları bildirebilir.
Uzantı Sınırı Herhangi bir sayıda arayüzü genişletebilir. Aynı anda yalnızca bir sınıfı veya bir soyut sınıfı genişletebilir.
Soyut anahtar kelime Soyut bir arayüz anahtar sözcüğünde, bir yöntemin özet olarak bildirilmesi isteğe bağlıdır. Soyut bir sınıfta, bir yöntemin özet olarak bildirilmesi için abstract anahtar sözcüğü zorunludur.
Sınıf türü Bir arayüz yalnızca genel soyut yöntemlere sahip olabilir. Soyut bir sınıf, korumalı ve genel soyut yöntemlere sahiptir.

Arayüz ve Soyut Sınıf için örnek kod Java

Aşağıda bir arayüz ve soyut sınıf oluşturmak için örnek kod bulunmaktadır Java

Arayüz Söz Dizimi

interface name{
//methods
}

Java Arayüz Örneği:

interface Pet {
    public void test();
}
class Dog implements Pet {
    public void test() {
        System.out.println("Interface Method Implemented");
    }
    public static void main(String args[]) {
        Pet p = new Dog();
        p.test();
    }
}

Soyut Sınıf Söz Dizimi

abstract class name{
    // code
}

Soyut sınıf örneği:

abstract class Shape {
    int b = 20;
    abstract public void calculateArea();
}

public class Rectangle extends Shape {
    public static void main(String args[]) {
        Rectangle obj = new Rectangle();
        obj.b = 200;
        obj.calculateArea();
    }
    public void calculateArea() {
        System.out.println("Area is " + (b * b));
    }
}