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 */