abstract metot
- Java kursu
- Orta seviye
- Ders 54/116
- 5 dk
abstract metotları öğrenirsin.
abstract metot
Bir abstract metot, gövdesi olmayan metot bildirisidir. abstract anahtar kelimesiyle başlar; alt sınıf bu metodun gövdesini yazmak zorundadır.
Örnek: abstract void sound();. Burada sound metodunun imzası vardır; gövdesi yok. Abstract sınıf içinde tanımlanır. Bir alt sınıf bu metodu override eder ve gövdesini yazar. Aksi halde alt sınıf da abstract olmalıdır. Bu mekanizma, temel sınıfın ne yapılacağını söyler; nasıl yapılacağını alt sınıfa bırakır. Farklı alt sınıflar aynı metodu farklı biçimde uygulayabilir. Bu, çok biçimliliğin temelidir.
Override zorunluluğu
Abstract sınıfın abstract metotları, alt sınıfta override edilmek zorundadır. Aksi halde alt sınıf da abstract olmalıdır. Bu, sözleşmenin yerine getirilmesini garanti eder.
Örnek: abstract class Animal { abstract void sound(); } tanımladıysan, class Dog extends Animal yazdıysan void sound() metodunu gövdesiyle yazmalısın. Yazmazsan derleyici 'Dog is not abstract and does not override abstract method sound' benzeri bir hata verir. @Override notasyonu bu denetimi daha da güçlendirir. Alt sınıf isterse abstract sınıfın somut metotlarını da override edebilir. Ama abstract metotlar kesinlikle yazılmalıdır.
Uygulama Animal abstract sınıfına sound ekle
Animal adında bir abstract sınıf tanımla. İçine abstract void sound(); imzasını ekle. class Dog extends Animal yaz; public void sound() metodunu gövdesiyle yaz ve içine System.out.println("Hav hav"); koy. main içinde new Dog().sound() çağır.
Başlangıç kodu
// Soyut Animal sınıfını tanımla
// Dog alt sınıfını yaz
// main'de new Dog().sound() çağırÖrnek çözüm
abstract class Animal {
abstract void sound();
}
class Dog extends Animal {
public void sound() {
System.out.println("Hav hav");
}
}
class Main {
public static void main(String[] args) {
new Dog().sound();
}
}Beklenen çıktı
Hav hav
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 abstract metot özelliklerini eşle
| Kavram | Anlamı |
|---|---|
abstract |
Gövdesizlik kelimesi |
; |
İmza sonu |
override |
Yeniden yazma |
void sound() |
İmza örneği |
2 Bir sınıf içinde abstract metot yazmak için sınıf nasıl olmalı?
- final
- static
- sealed
- abstract Doğru cevap
Açıklama: abstract metot yalnızca abstract sınıfta olur.
3 abstract metot imzasını tamamla
abstract class Animal {
____ void sound();
}
abstract class Animal {
abstract void sound();
}
Açıklama: abstract kelimesi gövdesiz metot bildirir.