final sınıf ve metot
- Java kursu
- Orta seviye
- Ders 17/116
- 5 dk
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
// Animal sınıfını tanımla
// final describe metodunu ekle
// main içinde örnekle ve çağırÖrnek çözüm
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
class Animal {
____ void breathe() {
System.out.println("Nefes");
}
}
class Animal {
final void breathe() {
System.out.println("Nefes");
}
}
Açıklama: final metot geçersiz kılınamaz.