Η λέξη super

Γενικά

Με τη λέξη super μπορείτε να έχετε πρόσβαση σε πεδία και μεθόδους υπερκλάσεων που έχουν ίδιο όνομα με αυτά των υποκλάσεων (δηλαδή των overriden).

Όταν μια μέθοδος έχει ίδιο όνομα με μια της υπερκλάσης, τότε έχουμε υπερκάλυψη (overriden). Όταν ένα πεδίο έχει ίδιο όνομα με κάποιο της υπερκλάσης, τότε έχουμε ένα κρυμμένο πεδίο (hidden).

Επίσης, η λέξη super χρησιμοποιείται για να καλούμε τον κατασκευαστή της υπερκλάσης όταν αυτό χρειάζεται.

Όταν καλείτε έναν κατασκευαστή της υπερκλάσης από τον κατασκευαστή της υποκλάσης, η κλήση πρέπει να είναι η πρώτη εντολή.

public class Superclass 
{
	public void printMethod() 
	{
		System.out.println("Printed in Superclass");
	}
}

public class Subclass extends Superclass 
{
	public void printMethod() // κάνει override την printMethod
	{  
		System.out.println("Printed in Subclass");
	}
	public static void main(String[] args) 
	{
		Subclass s = new Subclass();
		s.printMethod();  //καλεί την δική της printMethod
		super.printMethod(); //καλεί την printMethod της υπερκλάσης
	}
}
Printed in Subclass
Printed in Superclass

Παράδειγμα με τη super να καλεί τον κατασκευαστή της υπερκλάσης.

public SomeFunction()
{
	int a=100;
	int b=200;
	super(a, b); //καλεί τον κατασκευστή της υπερκλάσης με τα κατάλληλα ορίσματα
}