Java interface (Arayüz)
- Interface yani arayüz de aslında abstraction yani soyutlama görevi gören bir sınıf çeşididir, ancak abstract (soyut) sınıftan farkı tamamen soyut olmasıdır.
- Bildiğimiz üzere soyut sınıflarda hem soyut hem de soyut olmayan metodlar tanımlanabiliyordu fakat interface yani arayüzde soyut olmayan metod tanımlamak mümkün değildir, her şey soyuttur.
- Abstract sınıfın aksine interface sınıflardan kalıtılan sınıflar implements anahtar kelimesi ile interface sınıfa bağlanırlar.
- Bunlarda da aynen abstract sınıfta olduğu gibi interface türündeki sınıftan kalıtılan sınıfların içinde, interface in içinde bulunan tüm soyut metodlar override edilmelidir.
public interface çalışan{ abstract void çalış(); public void konuş(); }
Doğru:
class memur implements çalışan{ public void çalış(){ System.out.println(«Çalışan çalıştı»); } public void konuş(){ System.out.println(«Merhaba ben çalışan»); } }
Doğru:
class memur implements çalışan{ public abstract void çalış; public void konuş(){ System.out.println(«Merhaba ben çalışan»); } }
- Görüldüğü üzere interface sınıftan kalıtılan normal sınıf interface sınıfa implements kelimesi ile bağlanıyor ve interface sınıfın tüm soyut metodlarını alıyor ve bu soyut metodların artık gövdesi olmak zorunda.
- Ancak interface sınıftan yine bir interface sınıf kalıtılıyorsa bu kalıtım yine extends kelimesi ile yapılır ve kalıtılan sınıfın içindeki metodlar yine gövdesiz metod olmak durumundadır çünkü anlatıldığı üzere interface sınıfta gövdesi olan metod olmaz yani metodlar soyut olmalıdır.
Yorum gönder