CodeBlanks Logo Icon CodeBlanks

final sınıf ve metot

final ile devralınmazlığı öğrenirsin.

final sınıf

Bir sınıfı final olarak tanımlarsan o sınıftan miras alınamaz. Bu, sınıfın davranışının değiştirilememesini sağlar. String, Integer gibi Java'nın birçok sınıfı final'dir.

Örnek: final class Seal { }. Bu sınıftan miras almak istersen class Sub extends Seal { } yazamazsın; derleme hatası alırsın. final sınıflar güvenlik ve tutarlılık için kullanılır; sınıfın tasarımının bozulmasını önler. Değer sınıflarında ve değiştirilemez (immutable) yapılarda yaygındır.

final metot

Bir metodu final olarak tanımlarsan alt sınıflar onu geçersiz kılamaz. Bu, metodun davranışının değişmemesini sağlar. Sınıf kendisi final olmasa bile bazı metotları final yapabilir.

Örnek: class Animal { final void breathe() { } }. Animal'ı miras alan bir alt sınıf breathe metodunu @Override ile geçersiz kılamaz. Bu, hayati davranışların bozulmasını önler. final metotlar performans açısından da avantajlı olabilir; derleyici bunları doğrudan çağrıya çevirebilir.

Uygulama Animal sınıfına final metot ekle

Animal adında bir sınıf tanımla. İçine String name alanı ekle. final void describe() metodunu ekle; gövdesinde System.out.println(name + " bir hayvan"); yaz. main içinde bir Animal örneği oluştur, name ata ve describe metodunu çağır.

Başlangıç kodu

Main.java
// Animal sınıfını tanımla
// final describe metodunu ekle
// main içinde örnekle ve çağır

Örnek çözüm

Main.java
class Animal {
    String name;
    final void describe() {
        System.out.println(name + " bir hayvan");
    }
    public static void main(String[] args) {
        Animal a = new Animal();
        a.name = "Kaplan";
        a.describe();
    }
}

Beklenen çıktı

Kaplan bir hayvan

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 final class Seal tanımlanmış. Hangisi derlenmez?

  • Seal s;
  • Seal s = new Seal();
  • class Dog { }
  • class Sub extends Seal { } Doğru cevap

Açıklama: final sınıftan miras alınamaz; extends kullanılamaz.

2 final kullanımlarını eşle

Kavram Anlamı
final class Miras alınamaz
final method Geçersiz kılınamaz
String final sınıf örneği
breathe final metot örneği

3 final metot tanımını tamamla

Soru
class Animal {
    ____ void breathe() {
        System.out.println("Nefes");
    }
}
Cevap
class Animal {
    final void breathe() {
        System.out.println("Nefes");
    }
}

Açıklama: final metot geçersiz kılınamaz.

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