Föreläsning 9 Gränssnitt
Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super kan användas för att referera en variabel i superklassen
Anropsordning Konstruktor GeometriObjekt Rektangel FylldRektangel new FylldRektangel(100, 100, 10, 20, Color.RED); init av fält konstruktor super(100, 100, 10, 20);super(100, 100);
Gränssnitt (interface) Definierar ett beteende som klasser kan välja att implementera Beskriver ett antal metoder en klass ska ha för att ha en viss egenskap Ex. lagringsbar, ritningsbar Sätter en standard för hur klasser ska se ut för att vara tex lagringsbar Ett gränssnitt innehåller ingen kod
Skapa Gränssnitt Nyckelordet interface används för att visa att det är gränssnittet Metoderna i gränssnittet anges enbart med sina signaturer Alla metoder är publika, abstrakta Konstanter kan definieras interface Storable { String SUFFIX = ".obj"; void store(); void retrive(); }
Implementera Gränssnitt Använd nyckelordet implements En klass kan både ärva en klass och implementera ett gränssnitt Endast ett arv är möjligt.... men flera gränssnitt kan implementeras Gränssnittets alla metoder MÅSTE skrivas public class Cirkel extends GeometriObjekt implements Storable { … public void store() { // Kod för att lagra objektet } public void retrive() { // Kod för att hämta objektet } }
Arv vs. Gränssnitt Ärver man en klass ärvs både en specifikation och en implementation Implementerar man ett gränssnitt "ärvs" endast en specifikation Nackdel med gränssnitt: Om många klasser implementerar ett visst gränssnitt måste koden upprepas i alla dessa klasser