Nesne yönelimli programlamada, soyut bir sınıf, diğer sınıflara kısmi uygulama ve arayüz sağlamak için kullanılabilecek bir temel sınıf sağlar. Java, C ++ ve C # gibi birçok programlama dilinde kendi başlarına eksikler ve miras durumlarında kullanılıyorlar. Temel sınıf olarak kullanılması, genellikle soyut temel sınıf (ABC) olarak adlandırıldığı anlamına gelir.
Nesneye yönelik programlamanın ayrılmaz bir parçası olan veri soyutlama, bir nesnenin gereksiz ayrıntılarını kaldırır. Temel olarak, nesneyi temel tanımlayıcı özelliklerine kadar kaynatır. Bu temel özellikler, yalnızca ayrıntılarda farklılık gösteren, aynı özelliklere sahip diğer nesneler oluşturmak için kullanılabilecek bir plan sunar.
Bu plan bir sınıf olarak tanımlanmaktadır. Sınıflar kodu kapsüllemek için kullanılır, programcı için kolaylaştırır, çünkü rutinleri tekrar tekrar yazmak yerine belirli ortak rutinlere başvurabilir. Programcılar, sınıflardan alt nesneler oluşturur ve bu nesneler üst sınıf içindeki işlev ve yöntemleri devralır.
Soyut bir sınıfın amacı, başka sınıfların inşa edildiği çerçevedir. Nesneler doğrudan soyut bir sınıftan, yalnızca soyut sınıfa ait alt sınıflardan yaratılamaz. Bir nesnenin soyut bir sınıftan miras alması için, bir alt sınıfın oluşturulması gerekir. Bir soyut sınıfın yaratılmış bir alt sınıfının nesneleri, o soyut sınıfın özelliklerini devralır.
Her sınıf bir konsepti modellemektedir ve soyut sınıflar, soyut yöntemleri kullanarak daha soyut kavramları modelleme eğilimindedir. Soyut yöntemler, soyut sınıf içinde uygulama içermeyen alt yordamlardır. Bu alt rutinler alt sınıfın üzerine yazılacak yer tutucu olarak veya soyut yöntemin kendisini içeren sınıfa göre tasarlanmış bir nesne olarak kullanılır.
Soyut bir sınıf oluşturmanın farklı yöntemleri vardır. Örneğin, C ++ 'da, en az bir soyut yöntemle veya saf sanal işlevli bir sınıf geliştirilerek soyut bir sınıf oluşturulur. Java, soyut bir sınıfı belirtmek için "soyut" anahtar sözcüğünü kullanır. Bununla birlikte, kalıtım fikrini desteklemeyen programlama dillerinde tanımlanmış değildir.
Kalıtım, yeni nesnelerin, programı yeniden başlatmaya gerek kalmadan üst sınıflarında tanımlanan işlevleri ve yöntemleri kullanabileceği sınıflardan yeni nesneler oluşturma işlemidir. Bu yüzden soyut bir sınıf faydalıdır. Alt sınıfların alt sınıfları ve alt nesneleri, üst soyut sınıftan özellikleri devralır. Soyut sınıflar üst sınıflar olarak kabul edilir ve sınıf yapısı hiyerarşisinin en üstünde yer alır;


