Javada Arayüz (Interface) ve Soyut Sınıf (Abstract Class) Kavramı
Java’da interface ve abstract class nedir? Soyutlama, çok biçimlilik ve sınıf mimarisi açısından bu yapıların farklarını ve kullanımlarını keşfedin.
Java’da Arayüz (Interface) ve Soyut Sınıf (Abstract Class) Kavramı
Java’da nesne yönelimli programlama mantığıyla geliştirilen projelerde soyutlama önemli bir rol oynar. Soyutlama; neyin yapılacağını belirtip, nasıl yapılacağını alt sınıflara bırakma prensibidir. Bu amaca hizmet eden iki temel yapı vardır: abstract class (soyut sınıf) ve interface (arayüz).
1. Soyut Sınıf (Abstract Class) Nedir?
Abstract class, eksik (soyut) metotlar ve tamamlanmış metotlar içerebilen bir sınıf türüdür. Doğrudan nesne üretilemez, ancak miras alınabilir.
Tanımı:
abstract class Sekil {
abstract void alanHesapla();
void bilgi() {
System.out.println("Bu bir geometrik şekildir.");
}
}
Kullanımı:
class Kare extends Sekil {
int kenar = 5;
void alanHesapla() {
System.out.println("Alan: " + (kenar * kenar));
}
}
public class Main {
public static void main(String[] args) {
Kare k = new Kare();
k.alanHesapla();
k.bilgi();
}
}
2. Arayüz (Interface) Nedir?
Interface, yalnızca sabitler ve soyut metotlar içeren yapılardır. Çoklu kalıtımın Java'daki çözümüdür. Tüm metotlar varsayılan olarak public abstract kabul edilir.
Tanımı:
interface Calisabilir {
void calis();
}
Kullanımı:
class Insan implements Calisabilir {
public void calis() {
System.out.println("İnsan çalışıyor.");
}
}
public class Main {
public static void main(String[] args) {
Insan i = new Insan();
i.calis();
}
}
3. Abstract Class vs Interface Farkları
| Özellik | Abstract Class | Interface |
|---|---|---|
| Değişken | Değişken tanımlanabilir | Sabit (public static final) tanımlanır |
| Metot | Soyut ve somut metot içerir | Sadece soyut metot (Java 8+ ile default/metot eklenebilir) |
| Kalıtım | Sadece bir abstract class miras alınabilir | Birden çok interface implement edilebilir |
| Nesne Oluşturma | Oluşturulamaz | Oluşturulamaz |
4. Ne Zaman Hangisini Kullanmalı?
- Eğer bazı davranışlar ortak olacaksa ve somut metotlara ihtiyaç varsa abstract class tercih edilir.
- Tüm metotların dışarıdan farklı sınıflar tarafından uygulanması gerekiyorsa interface kullanılır.
Java interface ve abstract class yapıları, yazılım mimarisinde soyutlama ve esneklik sağlar. Geliştirilen sistemlerde kodun yeniden kullanılabilirliğini artırır, farklı sınıflar arası ilişkileri kurmayı kolaylaştırır. Bu yapıları doğru ve yerinde kullanmak, hem uygulama kalitesini hem de sürdürülebilirliğini doğrudan etkiler.