İmtisal AKDEDE
Yazılım Geliştirme Uzmanı

Java 17: Interfaces

Java 17: Interfaces

Java 8 ile birlikte interfacelerde default ve statik metotlar tanımlanabilir. Daha önce interfaceleri implemente eden sınıfları değiştirmeden interface’e yeni bir metot eklemek mümkün değildi, artık interfacelerde metotlar implemente edilebilir hale geldi.

Statik Metot: 

1
2
3
4
public interface Car {
		static String CarName() {
     		 return "Mercedes";
	}}

Statik metot interface’e aittir ve interface’i implemente eden sınıflar tarafından override edilemez. Dışarıdan erişmek için Car.CarName() şeklinde kullanılması gerekir.

Default Metot:

1
2
3
default String accelerate() {
		return Car accelerated;
    }

Default metotlar interface’i implemente eden sınıflar tarafından erişilebilir ve override edilebilir.

Java 9 ile birlikte interfacelerde private metot yazılabilir hale gelmiştir. Redundant koddan kaçınmak için Oracle böyle bir geliştirme yapmıştır. Abstract olmayan metotlar arasında ortak kodların paylaşılmasına olanak sağlamıştır. Java 9’dan önce interfacede private metot tanımlamak compile time hatasına sebep olmaktadır.

Private Metot:

1
2
3
4
5
public interface Car {
		private String instancePrivate() {
        		return "instance private";
    	}
	}

Referanslar