Java Default Interface Method 👾

Serhat Ataş
2 min readAug 21, 2023

--

Merhabalar, bu yazımda Java 8 ile gelen ve birçok yenilikten biri olan default methodların ortaya çıkışı ve kullanımı üzerine konuşacağız.

Neden Böyle Bir Özellik Geldi ? 🤔

Implementasyonu olmayan Interface’lere ekstra özellikler eklenmesine ihtiyaç duyulduğu zaman somut metodlar yazılamıyordu ve özellik eklemek için yeni bir sınıf oluşturmak gerekmekteydi. Kısaca geriye dönük özellik eklemek için ortaya çıkmıştır.

Tanım 🔍

Default metotlar, Interface’ler içerisinde yer alan ve içi doldurulabilen metotlardır. Yani bir Interface içerisinde somut bir metot yazarak implemente ettiğimiz sınıfta o davranışı kullanabilmekteyiz. Evet yanlış duymadınız, Interface içerisinde somut metotlar yazmak mümkün. Aslında dışarıdan bakıldığı zaman soyutlama kavramına aykırı bir durum gibi durmaktadır. Bence de öyle soyutlama kavramında bir Interface’e somut metot vermek pek doğru değildir. Bundan dolayı kodumuzu gelişime açık bir şekilde yazalım ki geriye dönük geliştirmelerde soyutlama mantığına aykırı davranmayalım.

Örnek 👨‍💻

public interface Draw{
default void square() {
System.out.println("Square is drawing");
}
}

Yukarıda yer alan örnekte, Draw Interface’i içerisinde square adında default metot oluşturulmuştur. Gelin şimdi bu metodu kullanalım.

public class Shape implements Draw{
}

Artık yukarıda implemente ettiğimiz sınıf üzerinden, Draw Interface’inin square metodunu kullanabiliriz.

Draw shape = new Shape()
shape.square();

Konsol çıktısı : Square is drawing

Ayrıca Shape sınıfı içerisinde, Interface’de yer alan default metodu override edebileceğimizi de şuraya not olarak bırakayım.

Sonuç 💪

Bu yazıda, Java 8 ile birlikte gelen default metotlar üzerine konuştuk. Kodumuz temiz olursa, default Interface metotları çok gerekli olmadıkça kullanmaya ihtiyaç duymayız.

Bir sonraki makalede görüşmek üzere :)

--

--