CodeBlanks Logo Icon CodeBlanks

extends

extends ile miras almayı öğrenirsin.

extends anahtar kelimesi

Miras (inheritance), bir sınıfın başka bir sınıfın alan ve metotlarını devralmasıdır. Java'da extends anahtar kelimesi ile yapılır. Devralan sınıfa alt sınıf (subclass), devralınan sınıfa üst sınıf (superclass) denir.

Örnek: class Dog extends Animal { }. Burada Dog alt sınıf, Animal üst sınıftır. Dog, Animal'ın tüm public ve protected alanlarına ve metotlarına erişir. Miras, kod tekrarını azaltır; ortak özellikleri üst sınıfta toplar, alt sınıflar özelleşir.

Devralınan üyeler

Alt sınıf, üst sınıfın public ve protected üyelerine doğrudan erişir. Bu üyeleri yeniden tanımlamadan kullanabilir. private üyelere doğrudan erişilemez; getter ve setter ile ulaşılır.

Örnek: Animal sınıfında String name ve void eat() olsun. Dog extends Animal yazdığında Dog örneği d.name ve d.eat() çağrılarını yapabilir. Bu üyeleri Dog içine tekrar yazmaya gerek yoktur. Miras, kodu tek yerde tutar ve yeniden kullanımı kolaylaştırır.

Uygulama Dog sınıfını Animal'dan miras al

Animal adında bir sınıf tanımla; içine String name alanı ve void eat() metodu ekle. Metot gövdesinde System.out.println(name + " yiyor"); yaz. Sonra Dog extends Animal tanımla; içine void bark() metodu ekle, gövdesinde System.out.println(name + " havlıyor"); yaz. Dog içine main koy; bir Dog örneği oluştur, name ata, eat ve bark metodlarını çağır.

Başlangıç kodu

Main.java
// Animal sınıfını tanımla
// Dog extends Animal tanımla
// main içinde örnekle ve çağır

Örnek çözüm

Main.java
class Animal {
    String name;
    void eat() {
        System.out.println(name + " yiyor");
    }
}
class Dog extends Animal {
    void bark() {
        System.out.println(name + " havlıyor");
    }
    public static void main(String[] args) {
        Dog d = new Dog();
        d.name = "Karabaş";
        d.eat();
        d.bark();
    }
}

Beklenen çıktı

Karabaş yiyor
Karabaş havlıyor

Soru ve cevaplar

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

1 Hangisi miras tanımıdır?

  • class Dog : Animal { }
  • class Dog implements Animal { }
  • class Dog from Animal { }
  • class Dog extends Animal { } Doğru cevap

Açıklama: extends anahtar kelimesi miras ilişkisini kurar.

2 Miras tanımını tamamla

Soru
class Dog ____ Animal {
    void bark() { }
}
Cevap
class Dog extends Animal {
    void bark() { }
}

Açıklama: extends anahtar kelimesi miras ilişkisini kurar.

3 Miras bölümlerini eşle

Kavram Anlamı
extends Miras anahtar kelimesi
Dog Alt sınıf
Animal Üst sınıf
name Devralınan alan

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