C # Özet Class ve Arayüz arasındaki fark Arasındaki Fark

Anonim

Bir soyut sınıf bir arayüz çok benziyor, ama kavram OOP başlayanlar için biraz kafa karıştırıcı. Kavramsal olarak, soyut bir sınıf, elbette herhangi bir uygulama olmaksızın bir arayüze benzemekle birlikte, farklılıkların adil paylaşımına sahiptirler. Soyut bir sınıf kısmen veya tamamen uygulanabilirken, bir arayüz tamamen uygulanmalıdır. İkisi arasındaki en önemli fark, bir arayüz sadece üye bildirimlerini içeren yöntemlerin tanımı olmakla birlikte soyut bir sınıfın varsayılan uygulanmasına sahip olabilmesidir. Her ikisinin teorik yönlerini ayrıntılı olarak tartışalım.

Soyut Sınıf Nedir?

Soyut sınıf, diğer sınıfların temelini oluşturan ve örneklendirilemeyen özel bir sınıf türüdür. Soyut bir sınıfın uygulama mantığı türemiş sınıflar tarafından sağlanır. Sınıf özeti yapmak için "soyut" niteleyici kullanılır, bu da eksik bazı uygulamaların türetilmiş sınıfta uygulanması gerektiğini gösterir. Soyut ve soyut üyeleri içerir. Soyut bir sınıf, daha fazla paylaşılabilen ve türetilmiş çok sınıflar tarafından geçersiz kılınabilen temel işlevleri sağlamak üzere tasarlanmıştır. Her türlü kod tekrarından kaçınmak yararlı olacaktır. Arayüzlere çok benziyor ancak ek işlevsellikleri var.

Arabirim Nedir?

Öte yandan, bir arayüz yalnızca işlevselliğin imzasını içeren bir sınıf değildir. Bu uygulama yapılmayan bir model. Kavramsal olarak, yalnızca üyelerin beyanını içeren yöntemlerin tanımıdır. Üyelerinin uygulanmasını içermeyen boş bir kabuktur. Sadece vb yöntemlerle, etkinlikler, indeksler özellikleri, doğrudan başlatılamaz ve üyeleri herhangi bir sınıf tarafından uygulanabilir gibi soyut üyeleri içeren soyut temel sınıf gibi. Ayrıca, bir sınıf tarafından birden çok arabirim uygulanabilir, ancak bir sınıf yalnızca tek bir sınıfı devralabilir.

3'ten büyük ->

Özet Sınıf Arayüz Karşılaştırması:

  1. Birden Kalıtım C # Özet Class ve Arayüz arasındaki fark - tek soyut sınıfını kullanabilirsiniz A sınıfı, dolayısıyla çoklu kalıtım desteklenmemektedir. Öte yandan, bir arabirim, birden çok devralmayı destekleyebilir; bu, bir sınıfın herhangi bir sayıda devralmayı devralabileceği anlamına gelir.
  2. C # Özet Sınıf ve Arayüz tanımı - Bir soyut sınıf hiçbir uygulamasıyla tanımını içerebilen sınıfının özel bir türüdür. Uygulama mantığı, türetilmiş sınıflar tarafından sağlanmaktadır. Soyut ve soyut olmayan yöntemlere sahip olabilir.Öte yandan bir arayüz, hiçbir şey yapamayacak bir model. Teknik olarak, sadece boş bir kabuk.
  3. Uygulama - Soyut bir sınıf, hem tanımı hem de onu uygulama içerebilir. Bu, örneklenemeyen tamamlanmamış bir sınıftır. Bir arabirim yalnızca herhangi bir kod olmadan işlevselliği imzalayabilir.
  4. Erişim Değiştiricileri - Soyut bir sınıf, arayüzlere erişim düzenleyicilere sahip olmak için izin verilmeyen ve tüm yöntemlerin örtülü olarak public olarak tanımlanması gereken hallerde, alt sınıflar, işlevler, özellikler vb. Gibi çeşitli erişim düzenleyicilerine sahip olabilir.
  5. Homojenlik - Soyut bir sınıf, aynı tür, davranış ve statünün uygulanması için kullanılırken, arabirim yalnızca yöntem imzalarını paylaşan uygulamalar için kullanılır.
  6. Declaration - Bir soyut sınıf, diğer tüm sınıflar için bir taban sınıfı görevi görür; dolayısıyla bir arabirim herhangi bir değişkeni bildirmesine izin verilmezken herhangi bir değişkeni beyan edebilir veya kullanabilir.
  7. Oluşturucu Bildirimi - Soyut bir sınıf yapıcı bildirimi içerse de, bir arabirimin yapıcı bildirimi olamaz.
  8. Çekirdek ile Çevresel - Soyut bir sınıf, bir sınıfın temel kimliğini tanımlamak için kullanılır ve aynı veri türünün nesneleri için kullanılabilir. Öte yandan, bir sınıfın çevresel yeteneğini tanımlamak için bir arayüz kullanılır.
  9. Sağlam ve Esnek - Soyut bir sınıf, en azından bir geliştiricinin bakış açısından işlevsellik açısından daha esnektir, ancak bir arabirim daha katıdır. Soyut Sınıf ve Arayüz: Soyut Sınıf

Arayüz

Soyut bir sınıf, işlevlerin, alt sınıfların ve özelliklerin üye bildiriminde tüm erişim düzenleyicilerine sahip olabilir.

Bir arabirimin, işlevlerin, alt sınıfların, özelliklerin vb. Üye bildirimi için erişim düzenleyicilerine sahip olmalarına izin verilmez. Tüm üyeler örtülü olarak genel kabul edilir.

Bir sınıf çoğunlukla sadece bir soyut sınıfı kullanabilir. Bir sınıf herhangi bir sayıda arayüzü devralabilir.
Soyut sınıflarda çoklu miras desteklenmiyor. Bir arabirim çoklu devralmayı destekleyebilir.
Teknik olarak, hem tanımı hem de uygulanmasını içerebilen veya içermeyebilecek bir sınıftır. Temel olarak boş bir kabuk olan bir arayüz yalnızca işlevselliğin imzasına sahip olabilir.
Soyut bir sınıf üye içerebilir. consts, tanımlı yöntemler ve yöntem taslakları. Bir arabirim yalnızca yöntemler ve consts içerebilir.
Bir sınıfın temel kimliğini tanımlar ve aynı veri türünün nesnelerini tanımlamak için kullanılır. Bir sınıfın çevresel yeteneklerini tanımlamak için kullanılır.
Soyut bir sınıf üyeleri, tam üyesi olmadıkça statik olamazlar. Arayüz üyeleri statik olamaz.
Aynı tür ve ortak davranışlar için idealdir. Birkaç uygulama sadece yöntem imzalarını paylaşıyorsa arayüzleri kullanmak daha iyidir.
Yapıcı bildirimi olabilir. Yapıcı bildirimi olamaz.
Soyut bir sınıf, önceden tanımlanmış alanlar ve kutlamalara sahiptir. Alanlar arayüzlerde tanımlanamaz.
Soyut ve soyut olmayan yöntemlere sahip olabilir. Soyut yöntemlere sahip olabilir.
Özet Soyut bir sınıf ile bir arayüz arasındaki fark nedir? Bu muhtemelen herhangi bir teknik röportajda sorulan en yaygın sorulardan biridir. Soyut sınıflar ve arabirimler hakkında herhangi bir C # öğreticisinde bol miktarda bilgi bulabilirsiniz, ancak ikisi arasındaki farkı anlamanız oldukça zor olanıdır. Bulabileceğiniz ve yine de yeterli bulamayacağınız tüm bilgileri bir araya getirebilirsiniz. Kavramsal olarak, ikisi de hem programlamada en önemli terimlerdir hem de tamamen aynıdır, ancak işlevsellik açısından çok farklıdırlar. Soyut bir sınıf, diğer sınıflar için bir taban olarak işlev gören özel bir sınıf türü olmasına karşın, bir arabirim yalnızca üye bildirimlere sahip yalnızca boş bir kabuktur.