Java'da Arayüz ve Soyut Sınıf: Fark Nedir?

İçindekiler:

Anonim

Arayüz nedir?

Arayüz, bir sınıfı uygulamak için kullanılabilecek bir plandır. Arayüz herhangi bir somut yöntem (kodu olan yöntemler) içermez. Bir arayüzün tüm yöntemleri soyut yöntemlerdir.

Bir arabirim somutlaştırılamaz. Ancak, arabirimleri uygulayan sınıflar başlatılabilir. Arabirimler hiçbir zaman örnek değişkenler içermez, ancak genel statik son değişkenler (yani, sabit sınıf değişkenleri) içerebilirler

Soyut Sınıf Nedir?

Bildiriminde abstract anahtar sözcüğü bulunan bir sınıfa soyut sınıf denir. Soyut sınıflar en az bir soyut yönteme sahip olmalıdır. yani gövdesiz yöntemler. Birden fazla somut yönteme sahip olabilir.

Soyut sınıflar, somut sınıflar için planlar oluşturmanıza izin verir. Ancak miras alan sınıf, soyut yöntemi uygulamalıdır.

Soyut sınıflar somutlaştırılamaz.

Arayüzleri Kullanmanın Önemli Nedenleri

  • Arayüzler soyutlamayı sağlamak için kullanılır.
  • Çalışma zamanında dinamik yöntem çözümlemesini desteklemek için tasarlanmıştır
  • Gevşek kaplin elde etmenize yardımcı olur.
  • Bir yöntemin tanımını miras hiyerarşisinden ayırmanıza izin verir

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

  • Soyut sınıflar, alt sınıflar için varsayılan işlevsellik sunar.
  • Gelecekteki belirli 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 Vs. Soyut Sınıf

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 arabirim yalnızca işlevselliği belirtmenize izin verir, ancak uygulamanıza izin vermez. Bir sınıf yalnızca bir soyut sınıfı genişletebilirken, bir sınıf birden çok arabirim uygulayabilir.

Parametreler Arayüz Soyut sınıf
Hız Yavaş Hızlı
Çoklu Kalıtımlar Birkaç Arayüz Uygulayın Sadece bir soyut sınıf
Yapısı Soyut yöntemler Soyut ve somut yöntemler
Ne zaman kullanılmalı Gelecekteki iyileştirme Bağımsızlıktan kaçınmak için
Kalıtım / 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ımlanmış şeyleri uygulamak tam bir kabustur. Soyut Sınıf durumunda, varsayılan uygulamadan yararlanabilirsiniz.
Erişim Değiştiriciler 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. Abstract Class bir erişim değiştiriciye sahip olabilir.
Ne zaman kullanılmalı Çeşitli uygulamalar yalnızca yöntem imzasını paylaştığında arabirimi kullanmak daha iyidir. Değer türlerinin polimorfik hiyerarşisi. Aynı türden çeşitli uygulamalar ortak bir davranışı paylaştığında kullanılmalıdır.
Veri alanları arayüz veri alanları içeremez. sınıf veri alanlarına sahip olabilir.
Çoklu Kalıtım Temerrüdü Bir sınıf, çok sayıda arabirim uygulayabilir. Bir sınıf, yalnızca bir soyut sınıfı miras alır.
Uygulama Bir arayüz soyuttur, dolayısıyla herhangi bir kod sağlayamaz. Soyut bir sınıf, geçersiz kılınması gereken eksiksiz, varsayılan kod verebilir.
Erişim değiştiricilerin kullanımı Yöntem, özellikler vb. İç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ımlı alanlar Hiçbir alan tanımlanamaz Soyut bir sınıf, hem alanları hem de sabitleri tanımlamanıza izin verir
Miras Bir arabirim birden çok arabirimi devralabilir ancak bir sınıfı miras alamaz. Soyut bir sınıf, bir sınıfı ve birden çok arabirimi devralabilir.
Yapıcı veya yıkıcılar Bir arabirim kurucuları veya yıkıcıları bildiremez. Soyut bir sınıf, yapıcıları ve yıkıcıları bildirebilir.
Uzantı Sınırı İstenilen sayıda arabirimi genişletebilir. Bir seferde yalnızca bir sınıfı veya bir soyut sınıfı genişletebilir.
Soyut anahtar kelime Soyut bir arayüz anahtar kelimesinde, bir yöntemi soyut olarak bildirmek için isteğe bağlıdır. Soyut bir sınıfta, abstract anahtar sözcüğü bir yöntemi soyut olarak bildirmek için zorunludur.
Sınıf türü Bir arabirim yalnızca genel soyut yöntemlere sahip olabilir. Soyut bir sınıf, korumalı ve genel soyut yöntemlere sahiptir.

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

Aşağıda, Java'da bir arayüz ve soyut sınıf oluşturmak için örnek kod verilmiştir.

Arayüz Sözdizimi

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özdizimi

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 " + (obj.b * obj.b));}}