Super ve This Anahtar Kelimeleri

Java da Super():

Bir alt-sınıf ne zaman üst-sınıfına erişmek isterse super anahtar sözcüğünü kullanabilir. super ‘in kullanımı iki türlü olur. Birincisi, üst-sınıfa ait nesne oluşturmak içindir. İkincisi, üst-sınıfın öğelerine erişmek içindir.(Bir üst sınıftaki default constructorı çağırır.)

Java da This():

This anahtar kelimesi o anda hangi nesne üzerinde işlem yapılıyorsa o nesnenin referansını döndürür. (Ayni sınıfta yer alan constructor i cağırmak için this() anahtar kelimesini kullanırız.)


class Animal {

 Animal(int a) {
  this();
  System.out.println("animal int ");
 }

 Animal() {
  super();
  System.out.println("Animal default");
 }
}

class Dog extends Animal {
 Dog() {
  // System.out.println("compile error. this ifadesi ilk ifade olmalidir!");
  this(10);

  System.out.println("dog default constructor");
  // super(); // hem super hem this olmaz. legal degildir, derleme hatasi
  // verecektir.

  // ayni sinifta yer alan constructor i cagirmak icin this() keywordunu
  // kullaniriz.

  // bir yapilandiricida ilk ifade ya this ifadesidir ya da super
  // ifadesidirir.
  // ikisi ayni anda olmaz!
 }

 Dog(int a) {
  super(a);
  System.out.println("dog int constructor");
  // this(); //Recursive constructor invocation Dog(int)
  // recursif olarak constructorlari cagirmaya calisirsak java bizim icin
  // derleme hatasi verecektir 🙂
 }
}

public class Test {
 public static void main(String[] args) {
  Dog dog = new Dog();
 }
}
/*
Ekran Çıktısı:
Animal default
animal int 
dog int constructor
dog default constructor
*/

#java, #java-da-anahtar-kelimeler, #java-dersleri, #super, #this