CodeBlanks Logo Icon CodeBlanks

abstract metot

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

Main.java
// 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

Main.java
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

Soru
abstract class Animal {
    ____ void sound();
}
Cevap
abstract class Animal {
    abstract void sound();
}

Açıklama: abstract kelimesi gövdesiz metot bildirir.

Orta seviye bölümündeki tüm dersler