Java’da Method Overriding

sametklou

Java’da Method Overriding

Java'da method overriding, bir alt sınıfta üst sınıfta tanımlanan bir metodu geçersiz kılmak veya değiştirmek için kullanılan bir yapıdır. Method overriding, polymorphism (çok biçimlilik) özelliğini sağlar ve alt sınıfların üst sınıflardaki davranışları değiştirmesine olanak tanır.

Method Overriding Nasıl Yapılır?

Method overriding yapabilmek için şu adımları takip etmelisiniz:

  1. Overriding yapılacak metot, alt sınıfta aynı isimde ve aynı parametrelerle tanımlanmalıdır.
  2. Metotun access modifier'ı (public, protected, private veya default) değişmemelidir.
  3. Metotun return type'ı değişmemelidir.
class Superclass {
    public void display() {
        System.out.println("Superclass'taki display metodu");
    }
}

class Subclass extends Superclass {
    @Override
    public void display() {
        System.out.println("Subclass'taki display metodu");
    }
}

Yukarıdaki örnekte Superclass isimli üst sınıfın display metodu, Subclass isimli alt sınıfta override edilmiştir.

Method Overriding Örnekleri

class Animal {
    public void sound() {
        System.out.println("Hayvan ses çıkarır");
    }
}

class Cat extends Animal {
    @Override
    public void sound() {
        System.out.println("Kedi miyavlar");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Köpek havlar");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal1 = new Cat();
        Animal animal2 = new Dog();

        animal1.sound(); // Output: Kedi miyavlar
        animal2.sound(); // Output: Köpek havlar
    }
}

Yukarıdaki örnekte Animal sınıfından türetilen Cat ve Dog alt sınıfları, sound metotunu override ederek kendi özel seslerini çıkarmaktadır. Bu sayede, aynı metot çağrılsa bile farklı davranışlar sergilenmektedir.

Java'da method overriding, kalıtım (inheritance) konseptinin güçlü bir özelliğidir ve polymorphism ile birlikte kullanıldığında kodun daha esnek ve modüler olmasını sağlar.