Soyut Sınıflar
Önceki Sekiller örneğimizi düşünelim:
Bu senaryoda Şekiller (Shape) süper sınıfı alt sınıfları için ortak bir arayüz sağlar, böylece çok biçimlilik uygulanır. Fakat Şekiller sınıfındaki scale yöntemi hiç birşey yapmaz ve onun asıl gerçekleştirilmesi alt sınıflara bırakılır. Şekiller sınıfı hakkındaki bir diğer önemli gerçek te onun anlamlı örneklerinin yaratılamayacağıdır. Java prgramlama dilinde bir sınıfın bazı yöntemleri abstract (soyut) olarak bildirilebilir ve eğer bir sınıf soyut yöntemlere sahipse o sınıf içinde soyut sınıfdır denir. Eğer bir yöntem abstract olarak bildirilmişse bu yöntemi gerçekleştirmeye gerek yoktur, alt sınıflar bu yöntemi gercekleştirmek zorundadır. Bir başka önemli özellik de abstract taban sınıfının bir örneğini yaratamazsınız ki bu da yukarıda belirtilen problemi çözer. Ayrıca bir sınıfı abstract yöntemleri olmasa da abstract olarak bildirmek mümkündür. Bu da anlamsız örnekler yaratılmasına engel olur.
Bir yöntem veya sınıf abstract anahtar kelimesi kullanılarak soyut olarak şöyle bildirilebilir:
abstract class soyutSinif{
	...
}

class birSinif { 
// bu sınıf da soyuttur 
// çünkü soyut bir yöntem içerir
	...
	abstract int soyutYontem(int Parametre);
	...
}