Soyut Sınıf ve Arayüz: Farklılıklar ve Benzerlikler
Yayınlanan: 2021-06-02Bir yazılım mühendisliği röportajı için oturuyorsanız, yolunuza çıkmasını bekleyebileceğiniz tek soru şudur: Soyut Sınıf ve Arayüz arasındaki farklar ve benzerlikler.
Soyut Sınıflar ve Arayüzler, Nesne Yönelimli Programlamanın temel bloklarıdır. Bunların her ikisi de programcıların OOP'lerin daha temel kavramlarından birini - Soyutlama'yı uygulamalarını sağlar. Soyut Sınıflar ve Arayüzler, Soyutlama kavramını uygulamak için kullanılırken, ikisi uygulamada farklıdır ve farklı kullanım durumları vardır. Soyut Sınıflar ve Arayüzler yeni başlayanlara benzer görünebilir, ancak birbirlerinin yerine kullanılamazlar.
Bu makalede, Soyut Sınıfların, Arayüzlerin nüanslarına ve ikisi arasındaki benzerlik ve farklılıklara bakacağız. Soyut Sınıf ve Arayüzün sadece bir kavram olduğunu ve seçtiğiniz herhangi bir Nesne Yönelimli Programlama dilinde uygulanabileceğini unutmayın. Tutarlılık için, bu makalede kavramları size açıklamak için kullandığımız herhangi bir sözdizimi Java olacaktır.
Bu makalenin sonunda, Soyut Sınıflar ve Arayüzler arasında ve hangilerinin belirli durumlar için uygulanacağını açıkça ayırt edebilirsiniz.
İçindekiler
Arayüzler – Bunlar nedir?
OOP'lerde bir Arayüz, basitçe çeşitli sistemler arasındaki davranışsal bir sözleşme olarak anlaşılabilir. Bunun anlamı, bir arabirim uygulayan herhangi bir sınıfın, Arabirimin tüm yöntemleri için bir miktar uygulama sağlaması gerektiğidir.
Bir arabirimdeki tüm yöntemler genel ve soyut olmalıdır. Bu nedenle, arayüzler “tamamen soyut” sınıflar olarak da anlaşılır.
Arayüzlerin tanımı şöyle görünür:
genel arayüz Yeme{
genel boşluk çiğneme();
genel boşluk sindirme();
}
Gördüğünüz gibi, tanım, adın başına interface anahtar sözcüğünü eklemeyi içerir . Ayrıca, bu arabirim altında iki soyut genel yöntem tanımlanmıştır - bu nedenle, yukarıdaki arabirimi uygulayan sınıfın çiğneme() ve sindirme() için uygulama sağlaması gerekecektir; fonksiyonlar.
Şimdi Soyut Sınıfların ne olduğuna bakalım ve sonra benzerliklerini ve farklılıklarını daha iyi anlamanız için her iki kavramı bir araya getireceğiz.
Soyut Sınıflar – Bunlar nedir?
Soyut anahtar sözcük, bildiriminde her zaman bir Soyut Sınıfın önüne ekler . Ayrıca, Soyut Sınıflar, soyut olmayan türev sınıfları için oluşturulan kılavuz görevi görür. Bu anlamda, bildirilerinde en az bir soyut yönteme sahip olmaları ve aynı zamanda soyut olmayan yöntemleri için uygun uygulamayı sağlamaları gerekir.
Soyut Sınıfların tanımı şöyle görünür:
genel soyut sınıf Yeme{
public void getReady(){
System.out.println(“Yemek yemeye hazırım”);
}
public abstract void start();
public abstract void stop();
}
Soyut sınıfın tanımında görebileceğiniz gibi , getReady() işlevi soyut değildir, start(); ve dur(); fonksiyonlar soyuttur.
Soyut Sınıfları uygulamaya gelince, bilmeniz gereken birkaç kural vardır:
- Soyut Sınıflar somutlaştırılamaz. Bunun anlamı - herhangi bir Soyut Sınıftan nesneler oluşturamayız.
- Soyut Sınıfı genişletecek herhangi bir alt sınıfın, Soyut Sınıfta açıklanan tüm soyut yöntemleri uygulaması gerekir. Alt sınıf tüm soyut yöntemleri uygulamıyorsa, alt sınıf da bir soyut sınıf olarak bildirilmelidir.
Artık Arayüzler ve Soyut sınıfların temellerine sahip olduğumuza göre, bunların nasıl farklı oldukları, benzerlikleri ve hangi yaklaşımı ne zaman kullanmamız gerektiği hakkında konuşalım.
Arayüzler ve Soyut Sınıflar arasındaki farklar ve benzerlikler
Bir Arayüz içinde bildirilen tüm yöntemler, dolaylı olarak genel ve soyuttur - oysa Soyut Sınıflar, yöntemleri için kısmi, genel, statik, korumalı ve daha pek çok türden değiştiriciye sahip olabilir.
Ayrıca, herhangi bir kullanıcı tanımlı sınıf, birden fazla arabirim uygulayabilir. Ancak, yalnızca bir Soyut Sınıf uygulayabilirler. Hem Arayüzler hem de Soyut Sınıflar yöntemlere ve değişkenlere sahip olabilir, ancak bunların hiçbiri başlatılamaz. Arayüzde bildirilen tüm değişkenler nihaidir. Ancak, Soyut Sınıflarda bildirilen değişkenler nihai olmayabilir ve kullanıcı tanımlı sınıflar tarafından değiştirilebilir.
İşte Soyut Sınıf ve Arayüz arasındaki tüm önemli farkların bir özeti.
Parametre | Soyut Sınıflar | Arayüzler |
anahtar kelime | soyut anahtar kelime kullanılmıştır. | interface anahtar sözcüğü kullanılır. |
Değişkenlerin türü | Son, nihai olmayan, statik ve statik olmayan değişkenleri işleyebilir. | Yalnızca varsayılan olarak tanımlanmış statik ve nihai değişkenlere sahip olabilir. |
Son değişkenler | İçinde son değişkenler bildirilmiş olabilir veya olmayabilir. | Değişkenler varsayılan olarak nihai olarak bildirilir |
Erişim değiştiricileri | Tüm değiştiricilere sahip olabilir - özel, genel, statik vb. | Yalnızca genel erişim değiştiricisine sahip olabilir. |
Yöntem türleri | Hem soyut hem de soyut olmayan yöntemlere sahip olabilir. | Yalnızca soyut yöntemlere sahip olabilir. |
Hız | Hızlı | Fazladan yönlendirme gerektirdiğinden yavaş. |
Soyut Sınıf vs Arayüz: Hangisini Ne Zaman Seçmeli?
Kodunuzda bazı uygulamalar sağlamak için bir temel sınıfa ihtiyacınız varsa, gitmenin yolu soyut bir sınıftır. Örneğin, tüm türetilmiş sınıfların kullanabileceği bir yöntemde bazı mantıksal eylemler gerçekleştirmek için bir sınıf içindeki birkaç değişkeni başlatmak isteyebilirsiniz. Böyle bir senaryoda, bir Soyut Sınıf kullanmak en iyi seçeneğinizdir.
Ancak, sınıflarınıza herhangi bir eklenti davranışı sağlamanız gerekiyorsa, arayüzleri tercih etmelisiniz. Gerçekte, hem arayüzler hem de soyut sınıflar size aynı işlevselliği sunacaktır. Ancak, kodlama standartlarını düşündüğünüzde fark ortaya çıkıyor. Arayüzler, OOP'lerin iki önemli ilkesi olan soyutlama ve polimorfizm elde etmenize yardımcı olur. Ayrıca, kodu sıkıca birleştirmek yerine gevşek bir şekilde birleştirilmiş halde tutmanıza da olanak tanır.
Şimdi Arayüzlerin ve Soyut Sınıfların kullanım durumlarını özetleyelim!
Arayüzler ne zaman kullanılır?
Bir Arayüz, programcıların sınıfları için ek davranış kalıpları oluşturmasına olanak tanır. Birinin sıfırdan başlamasına ve arayüzü istediği herhangi bir sınıfta uygulamasına izin verir. Arayüzün amacı, bu nedenle, tesadüfidir - koda eklenmesi gereken bir şeydir. Bu nedenle, sınıflara ek işlevler sağlamak istediğiniz ve arabiriminizin yöntemlerini açığa çıkarmaktan çekinmediğiniz durumlarda (tüm yöntemler genel olacağından), bir Arabirim uygulamasına geçmelisiniz.
Soyut Sınıflar ne zaman kullanılır?
Arayüzlerin aksine, Soyut Sınıflar çok daha fazla yapı sağlar. Soyut Sınıflar, bazı yöntemlerin varsayılan uygulamalarıyla birlikte gelir ve hatta Soyut Sınıfı tam olarak uygulamak için faydalı araçlar sunar. Varsayılan yöntem uygulamaları için yeterli alan bırakırken, bir dizi ilgili sınıf arasında bazı ortak işlevler sağlamak için Soyut Sınıfları kullanmalısınız.
Dünyanın en iyi Üniversitelerinden çevrimiçi Yazılım geliştirme Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Sonuç olarak
Soyutlama, OOP'lerin çok önemli bir bileşenidir ve hem Soyut Sınıflar hem de Arayüzler, kodunuzda bir dereceye kadar soyutlama elde etmenize olanak tanır. Ancak, artılarını ve eksilerini bilmeden bunları birbirinin yerine kullanmak bir hatadır ve kodunuzun (ve nihayetinde yazılımınızın) hatalı ve gecikmeli olmasına neden olabilir.
Bu makalenin, bazı sözdizimsel bilgiler ve bunların nerede uygulandıkları ile birlikte Soyut Sınıflar ve Arayüzler arasındaki önemli farkları anlamanıza yardımcı olduğunu umuyoruz.
Soyut Sınıflar ve Arayüzler hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500 saatten fazla sıkı eğitim, 9'dan fazla proje ve ödev sunan Tam Yığın Yazılım Geliştirmede Yönetici PG Programına göz atın , IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.
Nüanslar hakkında hala kafanız karıştıysa, lütfen bize aşağıya bir yorum bırakın, yakında size geri döneceğiz!
Java'da soyut sınıf nedir?
Soyut sınıf, somutlaştırılamayan ve miras alınamayan bir sınıftır. Kendi içinde önemli bir işlemi yoktur ve yalnızca somut sınıflar için bir üst sınıf görevi görür. Sadece uzmanlaşma sağlamak için kullanılır. Araba sınıfı ve onun alt sınıfları olan spor araba ve hatchback örneğini düşünün. Soyut sınıf Car, tüm alt sınıflar için ana sınıf olarak kabul edilebilir.
Java'da soyut bir sınıf ne zaman kullanılır?
Soyut sınıfın temel amacı, bir grup benzer sınıf için temel sınıf sağlamaktır. Soyut bir sınıfı genişleten tüm sınıflar, soyut sınıflarında tanımlanan yöntemleri uygulamalıdır. Soyut sınıflar, esas olarak, sınıfın uygulaması beklenen belirli bir arabirimi tanımlamak için kullanılır. soyut sınıf, yöntemleri tanımlayabileceğimiz süper sınıf olarak kullanılabilir ve gerekli yöntemler alt sınıfta uygulanabilir ve alt sınıf tarafından miras alınabilir. Soyut sınıfı kullanarak, alt sınıf tarafından kullanılabilecek ortak kodu tanımlayabiliriz, bu da onu daha verimli hale getirir.
Java'da soyut bir sınıf ile arabirim arasındaki farklar nelerdir?
Soyut sınıf ve arabirim, sınıfın uygulayacağı yöntemlerin tümünü olmasa da bazılarını içeren bir sınıfı tanımlamanın iki yoludur. Bu ikisi statik olarak farklıdır ve farklı şekilde elde edilir. Ama dinamik kullanım açısından aynılar. Bir arabirim, yalnızca sabitleri ve soyut yöntem bildirimlerini içeren bir sınıftır. Java'da gerçek bir arabirim uygulaması yoktur. Yani arayüzler tamamen kukla sınıflardır. Arayüzler, sınıftaki yöntem ve sabitlerin sözleşmelerini tanımlamak için kullanılır. Sınıfı aynı yöntemleri ve sabitleri uygulamaya zorlayacaktır. Yöntem, soyut sınıfta veya alt sınıflarda uygulanabilir. Soyut sınıf, soyut yöntemler içeren bir sınıftır. Alt sınıflar bu soyut yöntemleri uygular. Soyut sınıf ve arayüz, sınıftaki belirli sözleşmeleri uygulamak için birlikte kullanılabilir.