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

Anonim

Özet Sınıfı / Arabirim

Özet sınıfı (veya türü), program tarafından beyan edilen bir nazik tür sistemin türüdür. Adından da anlaşılacağı gibi, soyut bir sınıf soyut yöntemler veya özellikler içerebilir veya içermeyebilir. Ayrımcı sınıf, soyut türleri uygulamak için kullanılabilen farklı dil yapılarını ifade eder. Soyut sınıflar, en iyi nesne yönelimli programlamayla ve bitmemiş nitelikleriyle korunan bir tasarım sorunu ile karakterize edilebilir.

Arabirim sınıfların arabirimi belirtmek için uygulamak zorunda oldukları soyut bir türdür (genel anlamda konuşma). Arayüzler yalnızca yöntem imzaları ve sabit bildirimleri (hem statik hem son), hiçbir zaman yöntem tanımlarını içerebilir. Arayüzler çoklu kalıtımları taklit eder ve çeşitli sınıf türleri arasında paylaşılan benzerlikleri kodlamak için kullanılır.

Soyut tipler çeşitli şekillerde oluşturulabilir, belirtilebilir veya simüle edilebilir. Bir programcı, sınıf tanımında bir veya daha fazla yöntem içererek, sınıf tanımını tamamlamak için gerekli eksik özelliklerin üstesinden gelinmeden başka bir soyut türe ait miras bırakarak veya soyuta özel bir yöntem göndererek soyut anahtarları açıkça soyutla belirtebilir yöntemini doğrudan uygulamayan bu programlama dili.

Arayüzler soyut yöntemler kullanılarak tanımlanabilir. Sınıflar ayrıca arayüzlerde de uygulanabilir. Bir sınıf bir arabirim uygularsa ve tüm yöntemlerini uygulamıyorsa, işaretçi özeti kullanılmalıdır, aksi takdirde gösterici gerekli değildir (çünkü tüm arabirimler doğal olarak soyuttur). Sınıflar ayrıca çoklu arayüzleri de uygulayabilir.

Genel arabirimleri belirtmek için arabirimler kullanılırken soyut türleri, protokolü tanımlamak ve uygulamak için kullanılabilir (bu, istenen protokolü uygulayan tüm nesnelerin desteklemesi gereken bir dizi işlemdir). Soyut tipler alt tiplemesiz dillerde görülmez. Bu tür alt tipler, gerekli tüm işlevleri uygulamak zorunda kaldıklarından, program yürütülmesinin doğruluğundan emin olunurlar. Soyut türlerinin oluşturulmasının çeşitli yolları vardır: tam soyut temel sınıflar, açıkça soyut olarak bildirilen veya soyut (uygulanmamış) yöntemler içeren sınıflardır; Common Lisp Object Systems, Flavors sistemini temel alan mixinleri içerir; Java, elbette; ve Smalltalk'a bir uzantı olarak görev yapan Özellikler.

Özet:

1. Özet sınıfları (veya türleri) programları beyan eder; arayüzler, tüm sınıfların arayüzlerini belirlemek için uygulayacakları soyut tiplerdir.

2. Soyut tipleri anahtar kelimeyi kullanarak açıkça belirtilebilir; arayüzler özeldir, dolayısıyla anahtar kelimeyi kullanarak belirtilmesine gerek yoktur (belirli bir sınıf bir arabirim uyguladıysa da tüm yöntemlerini uygulamıyorsa).