Bir başka ayrım da şudur; bir sınıfın sadece bir süper sınıfı olabilirken, arayüzün tüm yöntemlerini gerçekleştirdiği sürece, herhangi bir sayıda arayüzü gerçekleştirebilir. Bu yüzden arayüzler birkaç çeşit kalıtım sağlayabilirler diyebilirz ki bu sınıflar için geçerli değildir.
Java dilinde bir arayüz basitçe
interface anahtar kelimesi kullanılarak bildirilebilir. Aşağıdaki kod basit bir arayüzün bildirilmesini göstermektedir:
interface Cizilebilen{
void draw();
};
Her sınıf gerçekleştirilecek arayüzü
implements anahtar kelimesini kullanarak belirtebilir ve böylece arayüzün tüm yöntemlerini gerçekleştirmiş olur. Aşağıdaki örnekte
Daire sınıfı
Çizilebilen arayüzünü gerçekleştirir:
class Dikdortgen extends Sekil implements Cizilebilir{
int radius;
void scale(int scaleFactor){
width *= scaleFactor;
height *= scaleFactor;
}
void draw(){
...
}
}
Sınıflar gibi arayüzler de
extends anahtar kelimesini kullanarak başka arayüzlerden miras alabilirler.Bir arayüz ayrıca aynı üye değişkenleri bildirebilirler. Bir arayüz içinde bildirilmiş tüm üye değişkenler bu arayüzü gerçekleştiren tüm sınıflar tarafından miras alınır.
Fakat bir arayüz içinde bildirilmiş tüm üye değişkenler otomatik olarak
static ve
finaldır.